Daten aus Formular werden nicht in Datenbank eingetragen

Hallo :slight_smile:
Mich quält seit gestern ein Problem bei meinem Formular.
Und zwar habe ich ein Anmeldeformular erstellt {Name, E-Mail, Passwort}, welches die Daten nachdem man auf senden geklickt hat in die Tabelle anmeldung meiner Datenbank eintragen soll. Allerdings passiert gar nichts nachdem man auf senden klickt. Das Skript hab ich mit den Grundlagen aus dem Buch “PHP & MySQL von Kopf bis Fuß” erstellt, ich hab auch schon die Vorlagen aus dem Buch mit meinem Skript verglichen und komme einfach nicht auf den Fehler :frowning:
Das hier ist mein PHP Skript:

[code]<?php
require_once(‘db.php’);
$db = mysqli_connect(DB_HOST, DB_BENUTZER, DB_PASSWORT, DB_NAME)
or die (‘Fehler beim verbinden mit MySQL-Server, kontaktiere Alice.’);
if (isset($_POST[‘submit’])) {
$name = $_POST[‘name’];
$email = $_POST[‘email’];
$passwort = $_POST[‘passwort’];

 if (!empty($name) && !empty($email) && !empty($passwort)) {		 
	 $sql = "INSERT INTO anmeldung (name, email, passwort)  VALUES ('$name', '$email', '$passwort')";
	 mysqli_query($db, $sql)
	 or die ('Fehler bei Datenbankabfrage, kontaktiere Alice.');
	 
	 echo ('Du hast dich erfolgreich angemeldet und kannst dich nun einloggen.');
 }
 else {
	 echo ('Ein Fehler ist aufgetreten, bitte versuche es erneut.');
 }
 mysqli_close($db);

}
?>[/code]
Die Textseite mit den Daten zum verbinden ist hochgeladen und die Daten bin ich oft genug durchgegangen, die sind meines erachtens komplett richtig.
Es wäre toll wenn jemand eine fehlerlösung hat :slight_smile:
Danke schonmal für die Antworten :3

Hallo,
existiert in deinem Formular ein Feld mit dem Namen “submit”; so viel ich interpretieren kann, meine ich, dass es der Senden-Button sein soll, sprich ?
Denn wenn es kein Feld mit dem Namen submit gibt, ist die erste if-Bedingung false.

Falls etwas in der Datenbank schief geht, gibt es die Variable $errno und $error, die im Fehlerfall gesetzt werden. Auf der Api-Seite schaust du dir am besten das Beispiel für den “Prozeduraler Stil” an und probierst es aus, indem du bewusst vor dem Testen Fehler einbaust, denn dann lernst du die Fehlermeldungen kennen und gewöhnst dich daran.

Kleiner Tipp zum Anfang von php. var_dump($variable) gibt dir ein paar Informationen zur Variable aus; im konkreten Fall var_dump($_POST), dann siehst du was du als Anfrage bekommst.

Da du bei den Anfängen bist, gebe ich dir einen weiteren Tipp für php und sql. Du verwendest mysqli anstatt von mysql; dort gibt es auch eine Funktion mysqli_prepare(). Das ist ein wunderbares Konstrukt, um sql-Injektion zu unterbinden, denn ich könnte in das Feld Passwort bei dir jetzt eingeben " '); DROP TABLE anmeldung ; – " ciao Tabelle;)

Des Weiteren solltest (vielleicht kommt das im Buch später noch, im Zuge von SELECT) du vorher überprüfen, ob der Name oder die Email bereits exisitiert.

Danke, ich hab den Fehler dank deiner Antwort gefunden :slight_smile:
Hatte aus versehen statt das

das hier stehen

Ein sehr dummer Fehler meinerseits :frowning:
Danke für die weiteren Tipps, ich werds auf jedenfall mit einbauen :slight_smile:
Lg