Forum > PHP
Re: zwei verblüffend einfache Lösungen
Hallo Carsten,
den ersten Teil Deiner Nachricht verstehe ich irgendwie nicht, aber grundsätzlich verfolgst Du den falschen Ansatz. Du kannst definitiv nicht Benutzereingaben durch clientseitig ausgeführten Code effektiv überprüfen. Neben den bereits erwähnten Angriffen auf direkter Protokollebene wäre bei Deinem Ansatz noch etwas viel einfacheres möglich: Formular mit eingeschaltetem JavaScript laden -> JS ausschalten -> Formular abschicken. Prüfe einfach die übermittelten Werte per PHP und vergiß JavaScript.
Grüße
Carsten
zwei verblüffend einfache Lösungen
Bevor eine Seite geladen wird, wird einer der vier Tests (return["http_response"]) aus httpRequest ausgeführt. Nach positivem Ergebnis wird die Seite geladen, nach negativem Ergebnis erhält der Anwender eine Meldung und der Vorgang wird abgebrochen.
Es gilt zu verhindern, daß überlange Texte via Textarea gespeichert werden. Einzig JavaScript kann rechtzeitig reagieren - aber - wer JavaScript im Brauser ausschaltete, den hindert derartige Kontrolle nicht.
Lösung
Den submit button durch JavaScript document write anzeigen und in noscript area "Bitte JavaScript einschalten" notieren. Bei Einschalten von JavaScript wird zwar wie beabsichtigt der button sichtbar, aber zugleich wird die Textmengenbeschränkung wirksam.
Formitude - gute Idee
Lieber Carsten,
für Deinen tip
"Vielleicht solltest Du Dir das Paket Formitude ..."
hab' herzlichen Dank! Ich habe alle Deine Angebote seit zwei Tagen auffer heimischen Festplatte - und buddele fleißig drin herum.
Ich hab' erst heute eine Linkliste fertig gestellt - da fehlt nur noch die eMailbenachrichtigung. Ich liebäugele mit dem simplen "mail - per php" - als dem bequemeren Weg,
gucke mir aber auch Deinen eMailversand an - als den besseren Weg. Wenn ich ihn verwende werde ich logo auf Dich verweisen.
Also
in Formitude hätte ich höchstwahrscheinlich früher oder später eh etwas gefunden - aber
Dein freundlicher tip erspart mir Umwege - vielen Dank!
Alles Gute!
Carsten
Re: post_max_size
Hallo,
Du brauchst kein JS... Prüfe einfach die Textlänge mit PHP. Wenn jemand Deinen Server lahmlegen wollte, würde er sich sicher nicht von JS abhalten lassen, da wird der Request dann einfach auf Protokollebene direkt gesendet. post_max_size kannst Du außerdem auch in der .htaccess-Datei auf Deinem Webspace festlegen, es dient aber als Sicherungsmaßnahme und nicht zum Prüfen von Formulareingaben. Vielleicht solltest Du Dir das Paket Formitude hier mal ansehen, da kannst Du die Textlänge automatisch prüfen lassen.
Grüße
Carsten
post_max_size
Lieber Carsten,
das kann ich nicht machen - ich habe nur gemieteten Speicherplatz.
Hast du Deinen eigenen Server?
Dann kannst Du ja die ini beliebig verändern.
Hier zuhause habe ich ein kleines Familien - Netzwerk, Intranet mit Server, da kann ich das auch machen - aber im Internet muß ich mir etwas Anderes einfallen lassen.
Linkliste
Beschreibung (analog zu meta description) max 200 Zeichen (oder so)
Kleinanzeigen
Anzeigentext max 500 Zeichen
Forum
Beitragstext max 2000 Zeichen
usw
Ich muß also flexibel bleiben - und muß mich zugleich vor Spam hüten.
IP - Sperre verhindert Masseneinträge, obwohl automatisch getätigte Einträge nicht generell verhindert werden sollen. Wenn der Inhalt in Ordnung ist - warum nicht automatischen Eintrag erlauben?
Mir bleibt wohl nix Anderes übrig als für die Textareas JavaScript anzuwenden. PHP funktioniert darin eben nur so, daß man um die Textlänge zu prüfen, zunächst mal den Text laden muß - und da gibt es keine Kontrolle, überlangen Jext abzuwehren. JavaScript prüft vor dem Versenden, verhindert die Wirkung von Submit - erlaubt erst gar nicht, überlangen Text zu laden.
Dumme Sache
Wer will schon mit JavaScript zu tun haben?
Serverseitige Funktionen sind viel zuverlässiger.
Alles Gute - und einen gesegneten Sonntag!
Carsten
Re: JavaScript vermeiden
Hallo Carsten,
PHP selbst prüft die Größe der übertragenen Daten um das Lahmlegen des Servers zu verhindern, siehe http://www.php.net/manual/de/ini.core.php#ini.post-max-size .
Grüße
Carsten
JavaScript vermeiden
Lieber Carsten Meier,
Du willst die Anwendung von JavaScript vermeinden - schtümmmt's?
Das hatte ich auch vor.
Ich habe wie Du das wahrscheinlich auch tust, Inhalte von Textareas mit php auf stringlänge geprüft.
Aber - wie verhindere ich, daß jemand zwantigtausend oder zweihunderttausend Zeichen kopiert - und damit meine prächtige php - Installation blockiert?
Dein Forum kontrolliert zwar auf "größer als" und ggf "gleich wie" um Beiträge auf 2000 Zeichen zu begrenzen.
Womit verhinderst Du die Eingabe von überlangem Text?
Das geht einzig mit JavaScript - oder kennst Du eine Server - eigene Funktion?
Pfüat Di!
Carsten
