Einleitung: Warum die einen PHP aufgeben und die anderen damit Geld verdienen
\n\nSie haben sich entschieden, PHP zu lernen. Eine ausgezeichnete Wahl! 78% aller Websites im Internet laufen mit dieser Sprache – von einfachen Blogs bis zu Giganten wie Facebook (naja, fast). Aber es gibt ein Problem: Viele Anfänger machen immer wieder dieselben Fehler, die das Lernen zur Hölle machen.
\n\nWarum passiert das? PHP ist eine tückische Sprache. Sie vergibt dumme Fehler, aber nicht das Unwissen grundlegender Prinzipien. Sie schreiben Code, er funktioniert, die Website lädt – und Sie denken, alles sei super. Aber einen Monat später können Sie sich in Ihrem eigenen 500-Zeilen-Wust nicht mehr zurechtfinden, und Ihre Website wird in 5 Minuten gehackt.
\n\nIn diesem Artikel analysiere ich die 5 häufigsten Fehler beim Lernen von PHP, die Anfänger machen. Ich zeige echte Codebeispiele, erkläre, warum das schlecht ist, und gebe konkrete Lösungen. Wenn Sie sich in mindestens einem Punkt wiedererkennen – keine Sorge, das ist normal. Einfach korrigieren.
\n\nFehler Nr. 1: Vermischung von PHP und HTML in einer Datei ohne Struktur
\n\nDas ist ein Klassiker. Der Anfänger schreibt so etwas wie:
\n\n<?php\n$username = "Ivan";\necho "<html><body><h1>Hallo, " . $username . "!</h1>";\n?>\n<p>Dieser Text kommt nach PHP</p>\n<?php\necho "</body></html>";\n?>\n\nEs funktioniert irgendwie. Aber versuchen Sie, eine Schleife, eine Bedingung, zehn Seiten hinzuzufügen – und Sie ertrinken in einem Brei aus Tags und echo. Solcher Code ist unmöglich zu lesen, zu warten und zu debuggen.
\n\nWarum ist das schlecht?
\n- \n
- Das Prinzip der Trennung von Verantwortlichkeiten (MVC) wird verletzt. \n
- Bei der kleinsten Designänderung schreiben Sie die halbe Logik neu. \n
- Code-Editoren werden von gemischten Tags verwirrt. \n
Wie macht man es richtig?
\nVerwenden Sie Templating. Auch ohne Frameworks kann man Logik von Darstellung trennen:
\n\n<?php\n// logic.php\n$data = ['name' => 'Ivan', 'age' => 25];\ninclude 'template.php';\n?>\n\n<!-- template.php -->\n<!DOCTYPE html>\n<html>\n<body>\n <h1><?= htmlspecialchars($data['name']) ?></h1>\n <p>Alter: <?= $data['age'] ?> Jahre</p>\n</body>\n</html>\n\nBeachten Sie: Ich habe das Kurztag <?= und die Funktion htmlspecialchars() verwendet – das ist bereits ein Schutz vor XSS. Fehler beim Lernen von PHP hängen oft genau mit der Missachtung von Sicherheit zusammen.
Fehler Nr. 2: Ignorieren von SQL-Injection (der gefährlichste)
\n\nIm Jahr 2025 solchen Code zu schreiben, ist ein Verbrechen:
\n\n$id = $_GET['id'];\n$query = "SELECT * FROM users WHERE id = $id";\n$result = mysqli_query($conn, $query);\n\nWenn man in der URL ?id=1 OR 1=1 übergibt, erhalten Sie alle Benutzer. Wenn man ?id=1; DROP TABLE users übergibt – tschüss Datenbank. Das ist eine SQL-Injection, und das ist das Erste, was Hacker überprüfen.
Wie behebt man das?
\nVerwenden Sie vorbereitete Anweisungen (prepared statements). So macht man das im modernen PHP mit PDO:
\n\n$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');\n$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');\n$stmt->execute(['id' => $_GET['id']]);\n$user = $stmt->fetch();\n\nDie Datenbank maskiert den Wert selbst. Eine Injection wird unmöglich. Merken Sie sich: Setzen Sie niemals Benutzerdaten direkt in eine SQL-Abfrage ein. Dies ist einer der wichtigsten Fehler beim Lernen von PHP, der Sie Ihre Website kosten kann.
\n\nFehler Nr. 3: Verwendung veralteter Funktionen und Stile
\n\nIm Internet gibt es viele Tutorials aus dem Jahr 2010, die lehren:
\n- \n
mysql_connect()– entfernt in PHP 7.0. \nereg()anstelle vonpreg_match(). \nsplit()anstelle vonexplode(). \n- Schließendes Tag
?>am Ende einer reinen PHP-Datei. \n
Warum ist das schlecht? Weil