Hey,
Mein Problem:
Ich habe ein script erstellt welches variablen in die Datenbank abspeichern soll. Nun wenn ich das Formular absende, dann entstehen zwar weiter spalten aber in denen steht nix, alle sind leer. Warum ist das den so ??
Mein script :
PHP
<?php
if(isset($_POST['absenden'])){
//Datenbankverbindung herstellen
$pdo = new PDO ('mysql:host=localhost;dbname=tutorial', 'root', '');
$statement = $pdo->prepare("INSERT INTO formulardaten(name,email,betreff,nachricht) VALUES ('$name','$email','$betreff','$nachricht')");
$statement->execute(array('$name','$email','$betreff','$nachricht')); //ausführen des SQL-Statements
if(isset($_POST['name']))
{
$name = htmlspecialchars($_POST['name']);
} else{
$name = null;
}
if(isset($_POST['e-mail']))
{
$email = htmlspecialchars ($_POST['e-mail']);
} else{
$email = null;
}
if(isset($_POST['betreff']))
{
$betreff = htmlspecialchars ($_POST['betreff']);
} else{
$betreff = null;
}
if(isset($_POST['nachricht']))
{
$nachricht = htmlspecialchars ($_POST['nachricht']);
} else{
$nachricht = null;
}
if(isset($_POST['sicherheitsabfrage']))
{
$sicherheitsabfrage = htmlspecialchars ($_POST['sicherheitsabfrage']);
} else{
$sicherheitsabfrage = null;
}
$sicherheitsantwort = 7;
$ausgabe = "-----------------------------------------\r\nName: ".$name ."\r\nE-Mail: ".$email ."\r\nBetreff: ".$betreff ."\r\nNachricht: ". $nachricht ."\r\n-----------------------------------------\r\n";
if( htmlspecialchars ($_POST['sicherheitsabfrage']) == 7 && htmlspecialchars($_POST['name']) && htmlspecialchars ($_POST['e-mail']) && htmlspecialchars ($_POST['betreff']) && htmlspecialchars ($_POST['nachricht']) !== null){
echo "<p class='echos'>Formular wurde erfolgreich abgesendet!</p>";
$file = 'auswertung.txt';
$current = file_get_contents($file); // Öffnet die Datei, um den vorhandenen Inhalt zu laden
file_put_contents($file, $current . $ausgabe); // Schreibt den Inhalt in die Datei zurück aber überschreibt die andere nicht, es geht auch so: file_put_contents($file , $ausgabe , FILE APPEND);
} else
{
echo "<p class='echos'>Ihre Angaben waren falsch. Bitte füllen sie das Formular nochmal aus!</p>";
}
}
?>
Alles anzeigen
Und ein Bild der Tabelle "formulardaten": http://prntscr.com/byonhe
Und das erscheint dann noch das: http://prntscr.com/byopxw , nach dem Absenden erst. Ich weis das da diese variablen nicht gesetzt sind wenn das kommt, habe es aber gemacht. Warum kommt es trotzdem ?
Dann noch ne Frage :
Ich möchte für jede gesendete Nachricht eine neue id haben. Wie macht man denn das?
PS: Habe erst heute gestartet. Wenn jemand Verbesserungsvorschläge hat nur raus damit
Stef