Es werden keine Daten in die Datenbank eingetragen

DarkBart

Mitglied
Hab folgendes Problem:
PHP:
<? 
include("guestbook/config.php"); // Config laden
// Hier nichts aendern
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
##### Fehler #####
$fehler = "";
if($_POST["icq"] == "" AND $pflicht_icq == 1) { $fehler .= "Du musst deine ICQ Nummer angeben<br>"; }
if($_POST["name"] == "" AND $pflicht_name == 1) { $fehler .= "Du musst deinen Namen angeben<br>"; }
if($_POST["email"] == "" AND $pflicht_email == 1) { $fehler .= "Du musst deine E-Mail Adresse angeben<br>"; }
if($_POST["homepage"] == "" AND $pflicht_homepage == 1) { $fehler .= "Du musst deine Homepage angeben<br>"; }
if($_POST["text"] == "" AND $pflicht_text == 1) { $fehler .= "Du musst einen Text schreiben angeben<br>"; }
#####/Fehler/#####
#####IP Tabelle aufraemen und abfragen#####
$zeit = time();
$gesperrt = $zeit - $gb_ipsperre;
$sql = "DELETE FROM hen_guestbookip WHERE timefeld <= $gesperrt";
mysql_query($sql,$connID);
$sql = "SELECT * FROM hen_guestbook WHERE (ip = '$ip')";
$result = mysql_query($sql,$connID);
#####/IP Tabelle aufraemen und abfragen/#####
$rows = mysql_num_rows($result);
if ($rows != 0) {
  echo("Sorry, diese IP ist noch gesperrt warte bitte noch");
} elseif ($fehler != "") { 
  echo("<b>Fehler:</b><br>$fehler");
} else {
  #####Eintrag wird in die DB geschrieben!##### 
  $sql = "INSERT INTO hen_guestbookip SET
          ip = $ip,
          timestap = $zeit";
  mysql_query($sql,$connID);
  $sql = "INSERT INTO hen_guestbook SET
          name = $_POST[name],
          email = $_POST[email],
          homepage = $_POST[homepage],
          icq = $_POST[icq],
          text = $_POST[text],
          ip = $ip";
  mysql_query($sql,$connID);
  echo("Danke das du dich in unser G&auml;stebuch eingetragen hast. Du bist jetzt $gb_ipsperre sec. gesperrt.");
  #####/Eintrag wird in die DB geschrieben!/##### 
}
?>
Es werden aber keine Einträge in die Datenbank gemacht!
ZUgangsdaten stimmen hab mit PHPmyAdmin Daten in die Tabelle eingefügt und die kann ich auch mit dem Script auslesen lassen. Nur reinschreiben geht net ich find einfach den Fehler net! Also kann sich einer den Code mal bitte angucken und das der vieleicht den Fehler findet! Schon mal danke.

[EDIT]
Ich komme immer bis:
Danke das du dich in unser G&auml;stebuch eingetragen hast. Du bist jetzt $gb_ipsperre sec. gesperrt.
Also müsste er es eigendlich reinschreiben!
Hier sie stelle im Code:
PHP:
  #####Eintrag wird in die DB geschrieben!##### 
  $sql = "INSERT INTO hen_guestbookip SET
          ip = $ip,
          timestap = $zeit";
  mysql_query($sql,$connID);
  $sql = "INSERT INTO hen_guestbook SET
          name = $_POST[name],
          email = $_POST[email],
          homepage = $_POST[homepage],
          icq = $_POST[icq],
          text = $_POST[text],
          ip = $ip";
  mysql_query($sql,$connID);
  echo("Danke das du dich in unser G&auml;stebuch eingetragen hast. Du bist jetzt $gb_ipsperre sec. gesperrt.");
  #####/Eintrag wird in die DB geschrieben!/#####
[/EDIT]

Gruß DarkBart
 
Zuletzt bearbeitet:
Hallo!

Als ich tippe mal, dass das Syntax der Insert-Anweisung einfach falsch ist. Zumindet habe ich diese Notation noch nie gesehen. Versuchs mal so:

Code:
INSERT INTO tabelle VALUES(wert1, wert2, wert3);

oder

Code:
INSERT INTO tabelle(id, ip, message) VALUES(wert1, wert2, wert3);

Letzteres benutzt man, wenn man nur einige Felder füllen bzw. durcheinander die Werte schreiben möchte und nicht alle der Reihe nach. Dein Syntax allerdings erinnert irgendwie an eine Kreuzung zwischen Insert und Update.

Und einer der Folgefehler ist, dass Du beim Insert die Variable $ip NICHT in Hochkommas gesetzt hast. Weiter oben bei einer Select-Anweisung hast Du es jedoch gemacht. Und ich schätze mal, dass die IP-Adresse wohl auch ein String-Datentyp sein soll, oder? :)
 
Ich weiß das es auch so geht wie du es da so gemacht hast. Aber in meinem Buch wird es immer so gemacht und in anderen Scripte geht es ja auch, aber ich werde es al auch probieren. Schonmal Danke

Gruß
 
Wie gesagt, so kenn ich es nicht. Aber ich lass mich auch gerne eines besseren belehren. :)

Jedenfalls würde ich dann trotzdem die Hochkommas bei der $ip-Variable setzen. Strings müssen in SQL in Hochkommas gesetzt werden, egal welche INSERT-Methode Du verwendest.
 
@DarkBart: Ich finde auch, dass Deine INSERT-Anweisung falsch ist. Saber hat schon recht mit dem, was er sagt. Du verwechselst Deine Anweisung mit der UPDATE-Anweisung (UPDATE tabelle set spalte = wert).

mfg, snuu
 
Hab es jetzt hinbekommen hab alles in Hochkommas gesetzt und dann fuktioniert es auch! Also liegt es nicht an der Art wie ich es geschrieben hab
PHP:
  #####Eintrag wird in die DB geschrieben!##### 
  $sql = "INSERT INTO hen_guestbookip SET
          ip = '$ip',
          timestap = '$zeit'";
  mysql_query($sql,$connID);
  $sql = "INSERT INTO hen_guestbook SET
          name = '$_POST[name]',
          email = '$_POST[email]',
          homepage = '$_POST[homepage]',
          icq = '$_POST[icq]',
          text = '$_POST[text]',
          ip = '$ip'";
  mysql_query($sql,$connID);
  echo("Danke das du dich in unser G&auml;stebuch eingetragen hast. Du bist jetzt $gb_ipsperre sec. gesperrt.");
  #####/Eintrag wird in die DB geschrieben!/#####

Closed
 
Zurück