Matthias: MySQL Eintrag von Guestbook

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>

  1. 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

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. 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

      1. 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

        --
        Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
        1. 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

          1. 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

            --
            Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|