Formulardaten mit PHP in MySQL schreiben... Eigentlich Korrekter code fuktioniert nicht

BELL

Mitglied
Hallo,

Ich wollte aus dem funktionierendem Code aus diesem Thema ein Formular-Feld bauen, nachdem ich mir die Daten nicht wie geplant per E-Mail zuschicken lassen konnt. Code:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>BELL!</title>
<br>
<div style="margin-left:auto;
margin-right:auto;
width: 1650px;
height: 450px;
background-color: #FFFFFF;">
<br>
<div style="margin-left:auto;
margin-right:auto;
width: 1600px;
height: 400px;
background-color: #77D4FF;">
<img style="margin: auto; width: 1600px;" src="Logo.png" alt="Logo">
</div>
</div>
</head>
<body bgcolor="#77D4FF">
<br>
<br>
<div style="margin-left:auto;
margin-right:auto;
width: 700px;
height: 900px;
background-color: #FFFFFF;">
<br>
<div style="margin-left:auto;
margin-right:auto;
width: 650px;
height: 450px;">
<br>
<form action="thxf.php" method="post">
 <div style="margin-left:auto;
margin-right:auto;
width: 600px;
height: 450px;"><font face="Arial" size="6">Ihr Vorname:  <input type="text" name="vorname" placeholder="Max" autofocus style="width: 300px; height: 36px; font-size: 30px; font-family: Arial;"/></font>
 <br>
 <br>
 <font face="Arial" size="6">Ihr Name: <input type="text" name="name" placeholder="Mustermann" style="width: 300px; height: 36px; font-size: 30px; font-family: Arial;"/></font>
 <br>
 <br>
 <font face="Arial" size="6">Ihre E-Mail-Adresse: <input type="text" name="email" placeholder="Max@Mustermann.de" style="width: 300px; height: 36px; font-size: 30px; font-family: Arial;"/></font>
 <br>
 <br>
 <font face="Arial" size="6">Ihre Nachricht: <textarea name="nachricht" placeholder="Hi, Hier ist alles Super!" style="width: 600px; height: 360px; font-size: 30px; font-family: Arial;"></textarea></font>
 <br>
 <br>
 <br>
 <input type="image" src="Absendenf.png" alt="Absenden"></div>
</form>
</div>
</div>
<br>
<div style="margin-left:auto;
margin-right:auto;
width: 700px;
height: 130px;
background-color: #FFFFFF;">
<br>
<div style="margin-left:auto;
margin-right:auto;
width: 600px;
height: 100px;
background-color: #FFFFFF;">
<a href="/iisstart.htm">
<img style="margin: auto; width: 600px;" src="Back.png" alt="Zurück zur Hauptseite">
</a>
</div>
</div>
<br>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$db = mysqli_connect("localhost", "php", "passwort", "bell");
if(!$db)
{
 exit("Verbindungsfehler: ".mysqli_connect_error());
}
$query = "
INSERT INTO
feed
(
VORNAME,
NACHNAME,
EMAIL,
NACHRICHT
)
VALUES
(
'" . mysqli_real_escape_string($db, $_POST['vorname'])  . "',
'" . mysqli_real_escape_string($db, $_POST['name'])  . "',
'" . mysqli_real_escape_string($db, $_POST['email'])  . "',
'" . mysqli_real_escape_string($db, $_POST['nachricht']) . "'
)
";
echo "{$query}";
mysqli_query($db, $query)  or die(mysqli_error());
var_dump($query);
?>
</body>
</html>

Mit diesem Code, der weitestgehend dem alten entspricht, wird aber nichts in die (vorhandene) Tabelle "feed" geschrieben. Auch gibt es keinerlei ausgabe, auch bei var_dump. Ich habe absolut keine Ahnung woran das liegen könnte, nachdem ich die Prozeduren in den Tutorials ausgeführt habe. Was ist hier falsch?

Danke für die Hilfe und die Geduld,

Bell
 
Du lässt Dir das $query ja mit echo ausgeben (Zeile 102). Poste doch mal ein Ergebnis hier. Was passiert, wenn Du dieses Ergebnis direkt über Phpmyadmin gegen die Datenbank jagst?
 
Dann setz am Anfang des Codes mal ein
PHP:
print_r($_POST);
um zu testen, ob überhaupt Werte aus Deinem Formular ankommen. Heißt die von Dir gepostete Datei überhaupt thxf.php ? Denn da werden die Formulardaten ja hingeschickt....
 
Ok, habe das ganz am anfang eingefügt und jetzt kommt da:

Code:
Array ( [vorname] => wadw [name] => awsdawd [email] => awswdawd [nachricht] => awdawdawd [x] => 114 [y] => 82 ) string(128) " INSERT INTO feed ( VORNAME, NACHNAME, EMAIL, NACHRICHT ) VALUES ( 'wadw', 'awsdawd', 'awswdawd', 'awdawdawd' ) "

d.h. funktioniert der Echo-Befehl jetzt auch. Und wenn man das in die Kommandozeile tippt, funktioniert es auch.

Danke, Bell
 
Ich fasse zusammen:
Die POST-Variable hat Daten.
Das Query funktioniert, wenn Du es hart gegen die DB jagst.
Hast Du in Zeile 103 jetzt wie von mermhaus berschrieben das mysqli_error angepasst, also
PHP:
mysqli_error($db)
? Wenn nicht bitte nachholen und dann den ausgeworfenen Fehler posten. Wenn dann nichts kommt, weiss ich auch nicht weiter...
 
Danke,

jetzt funktionierts. Kein ahnung warum, und vieleicht habe ich auch nur irgendwo irgendwas zuviel hingeschrieben und es jetzt entfernt.

Vielen dank, BELL
 

Neue Beiträge

Zurück