Hallo Christoph,
erst einmal schön, wieder mal etwas von Dir zu lesen.
Gibt es so etwas wie typische (Anfänger-)Fehler in PHP und wie sehen die aus?
Mal sehen, was mir da so einfällt:
register_globals, magic_quotes_gpc wurden ja schon erwähnt.
Dann hätten wir noch short_open_tag, also <? ?>, was nicht auf allen Systemen läuft. (Man sollte besser <?php bzw. <script language="php"> verwenden)
Beliebt scheint außerdem noch folgende Konstruktion zu sein:
if (strpos (/*...*/) == false) {
/* ... */
}
Was natürlich bei Position 0 falsche Ergebnisse liefert. (Korrekt wäre ===) Dies gilt natürlich genauso für andere Dinge, wo ein == falsch ist.
Dann gibt es natürlich immer noch so schöne Dinge wie Fenster mit PHP öffnen oder ähnliche Dinge, wofür eigentlich JavaScript da ist. Allgemein mixen PHP-Anfänger gerne JavaScript und PHP und sind sich nicht klar, wie diese sauber getrennt werden.
Dann gibt es noch Location: index.php - was natürlich nicht standardkonform ist und von einigen Clients nicht verstanden wird. (insb. PHP selbst)
Wir hätten dann desweiteren noch so etwas hier:
if (eregi ($q, $suchtext)) { /* $q stehe hier für $_GET['q'] ;-( */
echo 'gefunden!';
}
Was natürlich eine Fehlermeldung produzieren könnte, die evtl. Daten über den Server preisgibt; im besten Fall wundert sich ein Anfänger. Gerade ereg* sollte eigentlich vermieden werden - sowohl für einfache als auch für komplexe Ersetzungen, preg* ist besser.
Die Fehlerbehandlung ist auch ein wichtiger Punkt. Wenn keine Fehler behandelt werden, dann kann dies im Einzelfall durchaus zu ernsthaften Problemen führen, zum Beispiel Datenbankinkonsistenzen.
Zur Fehlerbehandlung wäre auch noch zu sagen, dass jeder, der Formulare nicht in Normalform schreibt, einen sehr guten Grund dafür haben sollte.
Außerdem ist es ein typischer Anfängerfehler, wenn jemand eine Browserkompabilitätsfrage unter dem Themenbereich PHP stellt. (Warum läuft meine PHP-Seite nicht unter Browser XYZ? Mein PHP-Quelltext sieht so aus: [10KB gesnippt])
Vor allem interessieren mich sicherheitstechnisch relevante Fehlleistungen, weniger der typische Anfänger, der nicht in die FAQ geschaut hat.
Aus eigener Erfahrung hier im Forum: Wer in die FAQ geschaut hat, der wird mit ziemlicher Sicherheit *keinen* typischen Anfängerfehler begehen.
woran erkennt der PHP-mäßig unbedarfte Chef, das er sich eine rechte Graupe eingehandelt hat.
Der Chef soll dem Mitarbeiter auferelgen, zur Demonstration ein Gästebuch zu schreiben. Er muss natürlich kontrollieren, dass dieser sich keiners herunterlädt. Wenn er es dann mit einfachen HTML-Codes "abschießen" kann, dann weiß er, wo er dran ist. Was besseres fällt mir dazu leider nicht ein.
Viele Grüße,
Christian