Script trägt zuviel in die mySQL Tabelle ein.

  • Themenstarter Themenstarter ByeBye 152404
  • Beginndatum Beginndatum
B

ByeBye 152404

Hallo,
ich habe volgendes Problem mit einem Gaestebuchscript, wen ich etwas eintrage stimmt der Eintrag auch nur fügt das Script noch einen Eintrag ohne ihnhalt direckt danach in die tabelle. Hab nun schon X mal den Fehler gesucht aber ich komm nicht dahinter.

Hier ist der Coder (zumindestens der Teil mit PHP) der Datei die alles an die Datenbank sendet.

PHP:
<?php
 
$name = $HTTP_POST_VARS["Name"];
$email = $HTTP_POST_VARS["Email"];
$hp = $HTTP_POST_VARS["Homepage"];
$icq = $HTTP_POST_VARS["ICQ"];
$eintrag = $HTTP_POST_VARS["Eintrag"];

$DatabasePointer = mysql_connect("$db_server", "$db_account", "$db_password");
mysql_select_db("$db_database", $DatabasePointer);     
$SQL = "INSERT INTO Gaestebuch (Datum, Name, Email, Homepage, ICQ, Eintrag) VALUES (NOW(''), '$name', '$email', '$hp', '$icq', '$eintrag')";
mysql_query($SQL, $DatabasePointer) or die(mysql_error()); 
      
if(mysql_affected_rows($DatabasePointer) == 1)
{
?>
Vielen Dank f&uuml;r Ihren Eintrag!<br>
<a href="index.php?site=gaestebuch">Zur&uuml;ck</a>
<?php
}
else
{
?>
Beim Eintragen ist ein Fehler aufgetreten.<br>
<a href="javascript:history.back();">Zur&uuml;ck</a>
<?php
}
?>

schonmal danke im vorraus
 
Zuletzt bearbeitet von einem Moderator:
Probier mal Folgendes:
PHP:
<?php

	$success = false;
	if( !empty($_POST) ) {

		$link = mysql_connect($db_server, $db_account, $db_password)
			or die(mysql_error());
		mysql_select_db($db_database, $link)
			or die(mysql_error());
		$query = '
			INSERT INTO
			        `Gaestebuch`
			  SET
			        `Datum`    = NOW(),
			        `Name`     = "'.mysql_real_escape_string($_POST['Name']).'",
			        `Email`    = "'.mysql_real_escape_string($_POST['Email']).'",
			        `Homepage` = "'.mysql_real_escape_string($_POST['Homepage']).'",
			        `ICQ`      = "'.mysql_real_escape_string($_POST['ICQ']).'",
			        `Eintrag`  = "'.mysql_real_escape_string($_POST['Eintrag']).'"
			';
		mysql_query($query, $link)
			or die(mysql_error());
		if( mysql_affected_rows($link) == 1 ) {
			$success = true;
?> 
Vielen Dank f&uuml;r Ihren Eintrag!<br> 
<a href="index.php?site=gaestebuch">Zur&uuml;ck</a> 
<?php 
		}
	}
	if( !$success ) {
?>
Beim Eintragen ist ein Fehler aufgetreten.<br> 
<a href="javascript:history.back();">Zur&uuml;ck</a> 
<?php 
	}
?>
Des weiteren bitte ich dich, etwas mehr auf die Regeln der deutschen Rechtschreibung zu achten.
 
K4ZUY4 hat gesagt.:
Hallo,
ich habe volgendes Problem mit einem Gästebuchskript, wenn ich etwas eintrage stimmt der Eintrag auch, nur fügt das Script noch einen weiteren Eintrag ohne Inhalt direkt in die tabelle. Hab nun schon X mal den Fehler gesucht aber ich komm nicht dahinter.

Also ich habe versucht den Text, ein bisschen deutlicher darzustellen.
Soll nicht Böse gemeint sein.
 
hab ich gemacht, nun bekomme ich ein neues problem

You have an error in your SQL syntax near '' at line 11

aus diesem grund poste ich nun den Code der ganzen datei

PHP:
<?php
include('config.inc.php');
?>
<head>
<title>Gaestebuch - Eingetragen</title>
<META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
</head>
<body>
<center>
<br/>
<table width='95%' border='0' cellpadding='0' cellspacing='0' bgcolor='#F7ECBF'>
  <tr>
    <td width='9' height='83'>&nbsp;</td>
<td width='904' valign='top'><table width='100%' border='0' cellpadding='0' cellspacing='0'>
          <tr>
            <td width='904' height='26' valign='top'> <span class='Stil1'>Gaestebuch</span></td>
          </tr>
          <tr>
            <td height='19' align='left' valign='top'>
		      <center>
<?php

    $success = false;
    if( !empty($_POST) ) {

        $link = mysql_connect($db_server, $db_account, $db_password)
            or die(mysql_error());
        mysql_select_db($db_database, $link)
            or die(mysql_error());
        $query = '
            INSERT INTO
                    `Gaestebuch`
              SET
                    `Datum`    = NOW(),
                    `Name`     = "'.mysql_real_escape_string($_POST['Name']).'",
                    `Email`    = "'.mysql_real_escape_string($_POST['Email']).'",
                    `Homepage` = "'.mysql_real_escape_string($_POST['Homepage']).'",
                    `ICQ`      = "'.mysql_real_escape_string($_POST['ICQ']).'",
                    `Eintrag`  = "'.mysql_real_escape_string($_POST['Eintrag']).'",
            ';
        mysql_query($query, $link)
            or die(mysql_error());
        if( mysql_affected_rows($link) == 1 ) {
            $success = true;
?> 
Vielen Dank f&uuml;r Ihren Eintrag!<br> 
<a href="index.php?site=gaestebuch">Zur&uuml;ck</a> 
<?php 
        }
    }
    if( !$success ) {
?>
Beim Eintragen ist ein Fehler aufgetreten.<br> 
<a href="javascript:history.back();">Zur&uuml;ck</a> 
<?php 
    }
?> 
    </center>
      </td>
          
</table></td>
    <td width='10'>&nbsp;</td>
  </tr>
</table>
<br>
</center>
</body>
</html>
 
Mein Fehler. Entferne einfach das letzte Komma der Abfragedefinition. Meinen vorherigen Beitrag habe ich entsprechend korrigiert.
 
Zurück