MySQL Eintrag von Guestbook
Matthias
- php
0 Tobias Kloth0 Matthias0 Tobias Kloth0 Matthias
Servas,
würd gerne aus einem Form 3 Variablen in eine Db Names Kunden eintragen, so werden die Inhalte aber nicht übertragen, zwar wird ein Datensatz eingefügt aber die Werte nicht,
Hilfe Bitte
__________________PHP
<?php
$name_gb = $HTTP_POST_VARS["name"];
$email_gb = $HTTP_POST_VARS["email"];
$kommentar = $HTTP_POST_VARS["kommentar"];
$connID = mysql_connect ("localhost","roman","mailand");
@mysql_select_db ("kunden", $connID)
or die ("Anfrage war nicht erfolgreich");
$sql = "INSERT INTO guestbook (name_gb, email_gb, kommentar) VALUES (BINARY '$name_gb', BINARY '$email_gb', BINARY '$kommentar')";
$result = mysql_query ($sql, $connID);
if ($result == 1) {
header ("Location: eintrag_erfolgt.php");
}
else {
header ("Location: eintrag_misslungen.php");
}
?>
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
</body>
</html>
Hallo Matthias,
würd gerne aus einem Form 3 Variablen in eine Db Names Kunden eintragen, so werden die Inhalte aber nicht übertragen, zwar wird ein Datensatz eingefügt aber die Werte nicht,
du solltest imho etwas an deiner Ausdrucksweise feilen.
$name_gb = $HTTP_POST_VARS["name"];
welche php-Version hast du? wenn du eine >=4.1 hast, solltest du $_POST['...'] verwenden.
$connID = mysql_connect ("localhost","roman","mailand");
wo fängst du Fehler ab?
@mysql_select_db ("kunden", $connID) or die ("Anfrage war nicht erfolgreich");
das @ kannst du weglassen
$sql = "INSERT INTO guestbook (name_gb, email_gb, kommentar) VALUES (BINARY '$name_gb', BINARY '$email_gb', BINARY '$kommentar')";
für was ist das "BINARY"? lass es mal weg - außerdem solltest du keine Daten die vom User kommen ungeprüft in die Datenbank schreiben (mysql_escape_string() entschäft diese). Lass dir auch mal $sql ausgeben - vielleicht steht garnicht das drin, was du vermutest.
$result = mysql_query ($sql, $connID);
wo fängst du Fehler ab?
header ("Location: eintrag_erfolgt.php");
header ("Location: eintrag_misslungen.php");
das sind keine gültigen header - hinter "Location:" gehört eine vollständige url.
Grüße aus Nürnberg
Tobias
Hallo Matthias,
würd gerne aus einem Form 3 Variablen in eine Db Names Kunden eintragen, so werden die Inhalte aber nicht übertragen, zwar wird ein Datensatz eingefügt aber die Werte nicht,
du solltest imho etwas an deiner Ausdrucksweise feilen.
Sorry ich arbeite dran...
$name_gb = $HTTP_POST_VARS["name"];
welche php-Version hast du? wenn du eine >=4.1 hast, solltest du $_POST['...'] verwenden.
Hab 4.1 stimmt, hab ich geändert
$connID = mysql_connect ("localhost","roman","mailand");
wo fängst du Fehler ab?
hab ich jetzt gemacht
@mysql_select_db ("kunden", $connID) or die ("Anfrage war nicht erfolgreich");
das @ kannst du weglassen
muss man aber nicht
$sql = "INSERT INTO guestbook (name_gb, email_gb, kommentar) VALUES (BINARY '$name_gb', BINARY '$email_gb', BINARY '$kommentar')";
für was ist das "BINARY"? lass es mal weg - außerdem solltest du keine Daten die vom User kommen ungeprüft in die Datenbank schreiben (mysql_escape_string() entschäft diese). Lass dir auch mal $sql ausgeben - vielleicht steht garnicht das drin, was du vermutest.
das ist der Punkt, die eingetragenen Werte der Variablen werden aus dem Formular nicht so in die DB geschrieben, die Werte der Spalten sind leer und das versteh ich nicht ?
Binary hab ich weggelassen, name_gb = Varchar 30, email_gb = Varchar 30 und kommentar = BLOB, so sind meine Eintragungen in der Tabelle Guestbook in der DB...
$result = mysql_query ($sql, $connID);
wo fängst du Fehler ab?
wurde gemacht
header ("Location: eintrag_erfolgt.php");
header ("Location: eintrag_misslungen.php");
das sind keine gültigen header - hinter "Location:" gehört eine vollständige url.
wurde erledigt
Grüße aus Nürnberg
Tobias
Hallo Matthias,
das ist der Punkt, die eingetragenen Werte der Variablen werden aus dem Formular nicht so in die DB geschrieben, die Werte der Spalten sind leer und das versteh ich nicht ?
mmh... ich auch nicht - hast du mal versucht, gleich nach $name_gb = $HTTP_POST_VARS["name"]; ein echo $name_gb; zu schreiben? Oder ein print_r($_POST);?
Grüße aus Nürnberg
Tobias
Hallo Matthias,
das ist der Punkt, die eingetragenen Werte der Variablen werden aus dem Formular nicht so in die DB geschrieben, die Werte der Spalten sind leer und das versteh ich nicht ?
mmh... ich auch nicht - hast du mal versucht, gleich nach $name_gb = $HTTP_POST_VARS["name"]; ein echo $name_gb; zu schreiben? Oder ein print_r($_POST);?
Jap hab ich probiert, kam nix, deshalb hab ich die name_gb in name umbenannt und dann ging es, man darf anscheindend keinen unterstrich (_) verwenden, naja Fehler beseitigt, Merci für die Mühen !
Matthias
Grüße aus Nürnberg
Tobias
Hallo Matthias,
mmh... ich auch nicht - hast du mal versucht, gleich nach $name_gb = $HTTP_POST_VARS["name"]; ein echo $name_gb; zu schreiben? Oder ein print_r($_POST);?
Jap hab ich probiert, kam nix,
das muss ich jetzt nicht verstehen, oder? :-) - um den Fehler zu finden, müsste ich mir das ganze live ansehen, und auch den ganzen Quellcode anschauen und austesten können.
deshalb hab ich die name_gb in name umbenannt und dann ging es, man darf anscheindend keinen unterstrich (_) verwenden,
natürlich darf man einen Unterstrich verwenden (in $HTTP_POST_VARS bzw $_POST sind ja auch welche drin) - eine Variablenname darf aus Buchstaben, Zahlen und Unterstrichen bestehen, wobei Zahlen nicht ganz am Anfang stehen dürfen siehe auch http://www.php.net/manual/de/language.variables.php#language.variables.basics.
Grüße aus Nürnberg
Tobias