![]() Mailinglisten-Archive |
* Sascha Meyer: Lieber Sascha, > ich muss mich schon sehr wundern, was Du für Vorschläge auf Deine Anfrage > erhälst ... wegen einem nicht laufenden Script direkt alle > Sicherheitseinstellungen für PHP über den Haufen zu werfen finde ich schon > allerhand, aktiviertes "register_globals" ist z.B. ein echtes > Sicherheitsrisiko! Also lieber erst mal die Basics lernen und das Script > umschreiben, statt Türen aufreißen ;) register_globals ist keine "Sicherheitseinstellung". Das Problem sind nicht die automatisch registrierten Variablen, sondern die ungeprüfte, bzw. uninitialisierte Nutzung eben solcher. > Ich habe Dir daher mal Dein Script umgearbeitet und angehängt, sollte so > auch funktionieren. Hierbei werden Variablen nur aus den passenden > vordefinierten Variablenarrays gelesen, die auch benötigt werden, dies sind > in Deinem Fall nur Werte aus dem $_POST-Array (Daten, die per Formular > übertragen werden; mehr zu "predefined variables" findest Du hier: > http://de.php.net/manual/de/reserved.variables.php ). Du verwendest $PHP_SELF, also eine automatisch registrierte global Variable. Du verwendest ereg() um eine E-Mail-Adresse zu validieren. In PHP5 gibt es hierfür Filter. > In den ersten Zeilen > des Scripts findest Du zwei Angaben zur Fehlerausgabe, die Du später bitte > wieder raus nimmst (die eine sorgt für die generelle Fehlerausgabe, die > zweite für die Anzeige beliebiger Meldungen inkl. Warnings, Infos und > Notices). E_ALL sollte auch im Produktiveinsatz aktiviert sein, jedoch nicht ausgegeben werden. Sinnvollerweise könnte man Meldungen in einen Logfile schreiben. > Auch das erwähnte "@"-Zeichen vor der mail()-Anweisung habe ich > rausgenommen, daher sollten Fehler beim Aufruf der Mailfunktion jetzt auch > angezeigt werden (Infos zur Fehlerunterdrückung gibts hier: > http://de.php.net/manual/de/language.operators.errorcontrol.php). Ansonsten vermisse ich, dass erkannte Fehler auch an den Betreiber gemeldet werden, bspw. in dem man sie in einen Logfile schreibt. -- Der Satz des Pythagoras umfaßt 24 Worte, das Archimedische Prinzip 67, die Zehn Gebote 179, die amerikanische Unabhängigkeitserklärung 300 - und allein Paragraph 19a des deutschen Einkommensteuergesetzes 1862 Worte. -- Erwin Huber
php::bar PHP Wiki - Listenarchive