Eingabefelder prüfen

Ich habe lange überlegt, wo ich diese Frage posten soll, aber ich denke mal, hier ist sie noch am Besten aufgehoben; wer PHP kann, kann auch JavaScript.

Also, es geht darum: zur Prüfung der Eingabefelder eines Formulars habe ich ja im Prinzip zwei Möglichkeiten. Entweder, ich mache das Client-seitig vor dem Abschicken mit JavaScript oder ich mache das mit PHP am Server. Ersteres hat den Vorteil, dass ich mir dadurch das Hin und Her der Daten erspare, aber wenn der User JavaScript abgeschaltet hat, dann gucke ich in die Röhre. Mit PHP habe ich dann mehr Datentransfer, was bei großen und vielgenutzten Formularen auch wieder nachteilig ins Gewicht fallen kann - allerdings habe ich hier im Fehlerfall m.E. die besseren Möglichkeiten der Fehlerkennzeichnung.

Dass ich letztlich die Entscheidung selbst treffen muss, ist mir schon klar. Aber was ich dennoch gerne wissen möchte: wie haltet ihr das, was sind so euere Erfahrungen / Meinungen zu diesem Thema ??

Ich prüfe nur Serverseitig

Ich habe lange überlegt, wo ich diese Frage posten soll, aber
ich denke mal, hier ist sie noch am Besten aufgehoben; wer PHP
kann, kann auch JavaScript.

Das ist ein Trugschluss… Ich kann php, folglich auch html, aber JavaScript kann ich zumindest nicht selbst schreiben. Ich verstehe meistens den Code, aber das wars dann :wink:

Dass ich letztlich die Entscheidung selbst treffen muss, ist
mir schon klar. Aber was ich dennoch gerne wissen möchte: wie
haltet ihr das, was sind so euere Erfahrungen / Meinungen zu
diesem Thema ??

Ich prüfe Grundsätzlich Serverseitig. Um valide Ergebnisse zu verifizieren ist das einfach ein Muss… Du könntest zwar auch mit einer JavaScript-Funktion die Daten erst senden um so sicherzustellen, dass JS auch aktiviert ist, aber damit sperrst Du einige User aus…
JS ist ausserdem nervig und zu durchsichtig. Mit selbstgebastelten Formularen oder vielleicht sogar mit den nötigen übergaben im get Format können die Daten ausserdem immernoch übergeben werden.
Bei langsamen Seiten ist es sicher nervig wenn man falsche Infos angegeben hat und sich die Seiten immer erst wieder aufbauen müssen. Da wäre JS dann schon besser. Trotzdem sollte bzw kann JS nie die Serverseitige echtheitsprüfung ersetzen!

HTH
Munich

Das ist ein Trugschluss… Ich kann php, folglich auch html,
aber JavaScript kann ich zumindest nicht selbst schreiben. Ich
verstehe meistens den Code, aber das wars dann :wink:

Nicht so bescheiden :smile:
Entweder ich kann programmieren, oder ich kann es nicht. Die eigentlichen Unterschiede liegen meist eh nur in der Syntax und „verstehen“ reicht doch für die meisten Scripts.

Doch zum eigentlichen Thema: ja, ich denke auch, dass eine serverseitige Prüfung letztlich besser - weil sicherer - ist. Auch wenn es insgesamt sicherlich aufwändiger ist.

Gruß, Robi

Nicht so bescheiden :smile:
Entweder ich kann programmieren, oder ich kann es nicht. Die
eigentlichen Unterschiede liegen meist eh nur in der Syntax
und „verstehen“ reicht doch für die meisten Scripts.

*g* es reicht - aber eben nur zum verstehen :wink:
sicher gibt es (fast) immer irgendwo Ähnlichkeiten, aber eben nicht zwingend. Dass aber z.B. Eingabefelder benannt werden können und mit einem bestimmtem Syntax den Wert ändern können ist in php kaum vorstellbar… Da setze ich meine Variablen oder eben nicht und das wars dann *g* Von daher fehlt manchmal auch für JS das Verständnis, denn in PHP gibt es halt kein derartiges Event-Handling…

Doch zum eigentlichen Thema: ja, ich denke auch, dass eine
serverseitige Prüfung letztlich besser - weil sicherer - ist.
Auch wenn es insgesamt sicherlich aufwändiger ist.

das ist definitiv so :wink:
wobei es m.E. nach am sichersten ist, wenn man nur POST-Variablen akzeptiert (register globals off). Dann ist der meiste Aufwand schon mal rausgenommen… Wenn man dann noch prüft, dass auch keine exploits vorgenommen werden können z.b. indem man bei einer Übergabe ?id=1 einfach ein ?id=1+OR+id=2 draus macht ist es definitiv sicherer als javascript-lösungen…
Ob es Aufwändiger ist weiss ich nicht - ich programmiere ja kein JS *g*

Hallo !

Also, es geht darum: zur Prüfung der Eingabefelder eines
Formulars habe ich ja im Prinzip zwei Möglichkeiten. Entweder,
ich mache das Client-seitig vor dem Abschicken mit JavaScript
oder ich mache das mit PHP am Server. Ersteres hat den
Vorteil, dass ich mir dadurch das Hin und Her der Daten
erspare, aber wenn der User JavaScript abgeschaltet hat, dann
gucke ich in die Röhre. Mit PHP habe ich dann mehr
Datentransfer, was bei großen und vielgenutzten Formularen
auch wieder nachteilig ins Gewicht fallen kann - allerdings
habe ich hier im Fehlerfall m.E. die besseren Möglichkeiten
der Fehlerkennzeichnung.

Warum nicht einfach beides ? Serverseitig prüfen ist ein MUSS, allein schon um Fehler, SQL Injection, etc. zu vermeiden.
Eine zusätzliche Prüfung der Daten per JS (sofern an) kann nicht schaden, und per DOM lassen sich Fehler auch per JS recht nett hervorheben (Ist dann zwar nicht Netscape 4 kompatibel, aber dafür gibt es noch die PHP Prüfung).

Es bietet sich an, Formulare grundsätzlich mit einer Klasse zu erstellen, bei welcher man bei der Erstellung des Formulars schon die Bedingungen angeben kann, welche Eingabefehler behandelt, etc. z.b. HTML_Quickform aus PEAR.

Alexander