1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
14
14
ZUGRIFFE
548
548
EMPFEHLEN
-
12.11.11 09:45 #1
Moin Moin,
ich hab da mal eine Frage bezüglich jQuery und das senden bzw holen von Daten mittels php Dateien.
Wenn ich mit jQuery arbeite und ich beispielsweise Daten an eine PHP Datei sende dann gebe ich immer die PHP Datei und den dazugehörigen Pfad an.
Bsp.:
Code :1 2 3 4 5 6 7 8 9
$.ajax({ type: "POST", url: "php/save.php", data: dataStr, success: function(del){ $('#signup').slideUp(500, function() { $('#success').slideDown(500); }); }
Was mich jedoch stört ist das jetzt jeder im Quelltext den Pfad zur PHP Datei einsehen kann.
Wie kann man es besser umsetzen? Gibt es überhaupt "bessere" Alternativen ? .. oder muss man sich damit abfinden, wenn man mit diesen Frameworks arbeitet.
Gruß
-
Was genau stört dich daran? Wo siehst du dort ein Problem?
Das einzige Problem, dass ich damit habe, sind Bots, die ständig an die im Quelltext gefundenen Pfade irgendwelche Anfragen schicken. Aber damit muss man leben.
Völlig egal welches Framework oder welche Sprache du verwendest, mit Tools wie HttpFox oder Wireshark findet man immer das Ziel heraus.
-
12.11.11 17:31 #3
Na ja in meinem Buch für OOP Programmierung steht halt, dass man möglichst versuchen sollte, Programmcode und HTML/JavaScript Code möglichst trennen sollte und dabei Pfade zum Programmcode(Klassen, Functionen etc.. ) nicht der Öffentlichkeit mitteilen sollte (mittels mod_rewrite) . Das klappt auch ganz gut nur im jQuery kann ich keine mod_rewrite generierte URl verwenden.
-
-
13.11.11 11:22 #5
Weil alle php-Dateien außerhalb meines template-Ordners(bzw.außerhalb des rootverzeichnisses) liegen und mein mod_rewrite sich nur auf den public (unteranderem template-Ordner) Ordner bezieht. Wüsste jetzt nicht wie ich dann die Dateien ausserhalb dieses public Ordners aurfufen könnte ausser den direkten Pfad anzugeben. Kann auch sein das ich aufm Schlauch stehe
-
Zeig doch mal die Ordnerstruktur und die Beispiele, wozu du mod_rewrite benutzt.
-
13.11.11 13:10 #7
Struktur:
/htdocs/projekt//application/frontend/class/objects/lib/public/img/css/js/lib/src/templates/private/errorsindex.php.htaccess
Inhalt der .htaccess-Datei:
Code :1 2
RewriteEngine On RewriteRule ^([^/]*)\.tpl$ /projekt/index.php?cPath=$1 [L]
-
Und wo liegt jetzt "php/save.php"? Liegt das JavaScript in "/public/js/src"? Dann wäre save.php in "/public/js/src/php/save.php"?
-
14.11.11 17:30 #9
ne also im gesamten /public Ordner ist keine PHP Datei zu finden. Alle Dateien ausser der index.php die erst Serverseitig verarbeitet werden, sind in den Unterordnern /applications/ /class , /objects etc. save.php befindet sich im ordner objects.
php/save.php war ein Beispiel von mir.
müsste also /application/frontend/objects/save.php lauten..
Und diesen Pfad soll keiner kennen.Geändert von creativeheadz (14.11.11 um 17:32 Uhr)
-
Angenommen du schreibst /save auf /application/frontend/objects/save.php um, was hindert dich jetzt daran in deinem JavaScript auf "/save" zu verweisen?
-
14.11.11 19:24 #11
Ja dann funktioniert ja meine bisheriger template Controller nicht mehr wenn ich jetzt die htaccess Datei anpasse. Oder kann ich zu meinem bisherigen .htaccess Code eine weitere Anweisung geben? Davon hab ich bis jetzt noch nichts gehört?!
-
Du kannst so viele RewriteRule haben wie du willst. Falls du das meinst.
-
14.11.11 20:44 #13
Probieren geht über stud... man man man! Da hätte ich echt auch allein drauf kommen können. Na ja jetzt hab ichs hinbekommen. Jedenfalls hat sich deine Geduld für mich gelohnt! Danke!
-
14.11.11 21:45 #14
Jetzt muss ich dochnochmal kurz nachhaken :/
meine .htaccess hab ich nun wie folgt angepasst:
Code :1 2 3 4 5
RewriteEngine On RewriteRule ^([^/]*)\.tpl$ /projekt/index.php?cPath=$1 [L] RewriteEngine On RewriteRule ^([^/]*)\/$ /projekt/jquery/jquery.php?jForm=$1 [L]
mein JS Code sieht wie folgt aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
<script id="validate" type="text/javascript"> $(document).ready(function() { // validate signup form on keyup and submit var validator = $("#signupform").validate({ rules: { salutation: "required", fname: "required", lname: "required", street: "required", zipcode: { required: true, minlength: 5 }, city: "required", region: "required", email: { required: true, email: true, remote: "/check_email/" }, password: { required: true, minlength: 5 }, password_confirm: { required: true, minlength: 5, equalTo: "#password" } }, messages: { salutation: 'Dies ist ein Pflichtfeld', fname: 'Dies ist ein Pflichtfeld', lname: 'Dies ist ein Pflichtfeld', street: 'Dies ist ein Pflichtfeld', zipcode: { required: 'Dies ist ein Pflichtfeld ', rangelength: jQuery.format("Min. {0} Zeichen") }, city: 'Dies ist ein Pflichtfeld ', region: 'Dies ist ein Pflichtfeld ', password: { required: 'Dies ist ein Pflichtfeld ', minlength: jQuery.format("Min. {0} Zeichen") }, password_confirm: { required: 'Dies ist ein Pflichtfeld ', minlength: jQuery.format("Min. {0} Zeichen"), equalTo: "Passwörter nicht identisch." }, email: { required: 'Dies ist ein Pflichtfeld ', minlength: "Falsche E-Mail.", remote: jQuery.format("{0} Wird bereits benutzt.") } }, // the errorPlacement has to take the table layout into account errorPlacement: function(error, element) { if ( element.is(":radio") ) error.appendTo( element.parent().next().next() ); else if ( element.is(":checkbox") ) error.appendTo ( element.next() ); else error.appendTo( element.parent().next() ); }, // specifying a submitHandler prevents the default submit, good for the demo submitHandler: function() { var dataStr = $("#signupform").serialize(); $.ajax({ type: "POST", url: "/send/", data: dataStr, success: function(del){ $('#signup').slideUp(500, function() { $('#success').slideDown(500); }); } }); return false; }, // set this class to error-labels to indicate valid fields success: function(label) { // set as text for IE label.html(" ").addClass("checked"); } }); }); </script>
funktioniert nun mit dem neuen "Pfad" die ´Validierung nicht und auch das Absenden des Formulars nicht.
Wo hab ich den Fehler****?
-
Auf Anhieb sehe ich da keinen Fehler. Guck dir mit Firebug, HttpFox oder ähnlichem mal an, was an den Server gesendet wird und ob da eventuell eine Fehlermeldung kommt.
Ähnliche Themen
-
Methoden-Variablen in ProGuard verschleiern
Von ciD4r im Forum Java GrundlagenAntworten: 15Letzter Beitrag: 15.11.11, 09:23 -
ip adresse verschleiern mit vb
Von dranonym im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 21.08.08, 00:53 -
E-mail Adresse verschleiern
Von Jan-Frederik Stieler im Forum HTML & XHTMLAntworten: 7Letzter Beitrag: 21.02.08, 12:22 -
Referrer verschleiern!
Von firstlord18 im Forum PHPAntworten: 5Letzter Beitrag: 05.11.05, 19:56 -
IP Adresse verschleiern.
Von Cheris im Forum Internet, DSL & FlatrateAntworten: 3Letzter Beitrag: 23.12.04, 19:47





Zitieren


Login





