Hallo!
wie kann ich verhindern, dass jemand in mein textarea-Feld ausführbaren Code eingibt (ist dies überhaupt möglich, da der Code doch dann am Client eingegeben wird und nicht wie bei PHP üblich auf dem Server liegt ??? <- Anfängerfrage ;) ) und damit evtl. den Server lahm legt...
Meinst Du mit "ausführbaren Code" PHP-Quelltext? Das kommt ganz drauf an was Du mit dem Code machst. PHP-Code wird nur ausgeführt, wenn der Code in einer Datei liegt, die durch den PHP-Interpreter läuft, so standardmäßig bei Scripten mit der Endung .php die über den Webserver aufgerufen werden, und bei Dateien die per include() in ein PHP-Script eingebunden werden. Wenn Du PHP-Code in einem Script nur ausliest, also z.B. aus einer Datenbank, oder per file()... dann wird der nur ausgeführt, wenn Du den extra durch eval() schickst, um eben dessen Ausführung zu erreichen. Wenn Du den PHP-Code allerdings nur per echo ausgibst, dann erscheint dieser Code halt eben auf der HTML-Seite. Vermutlich wirst Du den Code im Browser nicht sehen, weil dieser nmormalerweise keine Sachen zwischen < und > anzeigt (aber im HTML-Quelltext kannst Du den Code sehen).
Wenn man in ein Formularfeld eingegebenen PHP-Quellcode und HTML-Quellcode... sehen soll, dann solltest Du Strings vor der Ausgabe noch mit http://de3.php.net/manual/de/function.htmlentities.php bearbeiten, das hat auch den Vorteil dass sämtliche Versuche mit Javascript irgendwelchen Schaden bei anderen Besuchern anzurichten nicht funktionieren werden.
Kann mir jemand mal ein Beispiel nennen, wie ich input/textarea-Felder mit PHP (Javascript will ich nicht, da dies nicht immer aktiviert ist/bzw. umgangen werden kann) prüfen kann?
Was willst Du denn überprüfen? Solange Du den Text aus dem Eingabefeld nicht per include() einbindest, oder durch eval() schickst, musst Du Dir um den darin enthaltenen PHP-Code keine Sorgen machen. Javascript kann da erheblich unangenehmer sein. Sicher kann man es ausschalten, aber die meisten Leute haben es aktiviert. Wenn jemand ein böses Javascript in das Eingabefeld einschleust, und Du nichts dagegen unternimmst, wird dieses bei jedem Besucher ausgeführt, der sich die Seite mit diesem Text ansieht.
Gucke Dir mal hier (http://www.php-mag.de/itr/online_artikel/psecom,id,396,nodeid,62.html) den Abschnitt "Cross Site Scripting" an.
In Feld x soll z.B. nur ein Name (oder eine Emailadresse, Telefonnummer etc. ) möglich sein.
Wie man eine email-Adresse prüft steht z.B. hier: http://aktuell.de.selfhtml.org/tippstricks/programmiertechnik/email/
Sonst solltest Du Dich mal näher mit regulären Ausdrücken beschäftigen, vor allem den preg_* Funktionen.
siehe:
http://www.dclp-faq.de/q/q-formular-verarbeitung.html
http://www.dclp-faq.de/q/q-regexp-pruefen.html
http://tut.php-q.net/regex.html
Grüße
Andreas
SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/