Warum funktioniert dieser PHP-Code nicht?
Es wird gesagt, dass es einen Fehler in Zeile 17, 18 und 19 gibt. Also ab
$name = $_POST['Name'];
Ich finde den Fehler dazu aber nicht. dieser Code ist dazu da, einen neuen Benutzer in eine Datenbank zu speichern.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form method="post">
<input type="Text" id="Name" placeholder="Name"><br><br>
<input type="Text" id="Vorname" placeholder="Vorname"><br><br>
<input type="number" id="Telefonnummer" placeholder="Telefonnummer"><br><br>
<input type="submit">
</form>
<?php
$name = $_POST['Name'];
$Vorname = $_POST['Vorname'];
$Telefonnummer = $_POST['Telefonnummer'];
require "./Config.php";
$pdo;
$sql = "INSERT INTO user (Name, Vorname, Telefonnummer) VALUES (:Name, :Vorname, :Telefonnummer)";
$stmt = $pdo -> prepare($sql);
$stmt -> execute(['name' => $name, 'Vorname', $Vorname, 'Telefonnummer', $Telefonnummer]);
?>
</body>
</html>
1 Antwort
In einer form wird der Post erst gesendet, wenn der submitbutton gedrückt wurde. Dein code wird beim neuladen der seite sofort ausgeführt. Aber der submit wurde noch nicht getätigt.
Du müsstest folgendes so ändern:
html
<input type="submit" id="submit-btn">
php
if(isset($_POST['submit-btn'])){
$name = $_POST['Name'];
$Vorname = $_POST['Vorname'];
$Telefonnummer = $_POST['Telefonnummer'];
require "./Config.php";
$pdo;
$sql = "INSERT INTO user (Name, Vorname, Telefonnummer)
VALUES (:Name, :Vorname, :Telefonnummer)";
$stmt = $pdo -> prepare($sql);
$stmt -> execute(['name' => $name, 'Vorname', $Vorname, 'Telefonnummer', $Telefonnummer]);
}
Zudem würde ich die Telefonnummer überprüfen, bevor du die daten in derDatenbank speicherst. Das hier könnte dir dabei helfen.