• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Warum funktioniert mein Gästebuch nicht????

chriskoller

Mitglied
Hallo habe ein Problem mit meinem einfachen Gästebuch. Das Gästebuch selbst funktioniert, allerdings funktioniert das eintragen in meine Datenbank nicht. Kenn mich nicht so gut aus habe jetzt mal mein php- Skript und mein Html-Formular und ein Bildschirmfoto von meiner Datenbank.
Bitte um Hilfe.

Die HTML-Datei:

HTML:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Bitte tragen Sie sich in unser Gaestebuch ein</title>
</head>
<body  bgcolor="#FFFFFF" text="#000000">
<form name="guest" method="post" action="guest_2.php" >
<H2>Ihr G�stebucheintrag:</H2>
   <table width="500px" border="0" cellspacing="0" cellpadding="5">
 
    <tr>
    
      <td bgcolor="#999999"  height="30px" width="80px" >Name:</td>
      <td bgcolor="#CCCCCC"  height="30px" width="420px">
        <input type="text" name="name" maxlength="50" size="25">
      </td>
    </tr>
    <tr>
      <td bgcolor="#999999"  height="30px" width="80px" >E-Mail:</td>
      <td bgcolor="#CCCCCC"  height="30px" width="420px">
        <input type="text" name="email" size="25" maxlength="50">
      </td>
    </tr>
    <tr>
      <td bgcolor="#999999"  height="30px" width="80px" >Hommepage:</td>
      <td bgcolor="#CCCCCC"  height="30px" width="420px">
        <input type="text" name="hommepage" size="25" maxlength="50">
      </td>
    </tr>
    <tr>
      <td bgcolor="#999999"  height="180px" width="80px" >Text:</td>
      <td bgcolor="#CCCCCC"  height="180px" width="420px" >
   
          <textarea name="text" cols="45" rows="10"></textarea>
       
      </td>
    </tr>
    <tr>
      <td bgcolor="#999999"  height="30px" width="80px" >&nbsp;</td>
      <td bgcolor="#CCCCCC"  height="30px" width="420px">
        <input type="submit" name="senden" value="Senden" >
        <input type="reset" name="reset" value="L&ouml;schen">
      </td>
    </tr>
   
  </table>
</form>
</body>
</html>


Die PHP Datei:

PHP:
<body bgcolor="#FFFFFF" text="#000000">
<?php
$datum = date ("Y-m-d  H:i:s");
$name =$_POST['name'];
$email =$_POST['email'];
$hommepage =$_POST['hommepage'];
$text =$_POST['text'];


$db=mysql_connect ("localhost", "root", "Ck12121212") 
or die ('Der Datenbankserver ist nicht verf�gbar...');
$db_select=mysql_select_db('gaestebuch', $db)
or die ('Das G�stebuch ist nicht verf�gbar...');


if ($name!="" && $email!="" && $hommepage!="" && $text!="")
{
    $eintrag = "INSERT INTO guest (datum, name, email, hommepage, text) VALUES ('$datum', '$name', '$email', '$hommepage' '$text')";
     mysql_query ($eintrag)
     or die('Fehler beim Eintrag...');
     mysql_close ($db);
     echo "Ihr Eintrag wurde erfolgreich vorgenommen!";
     
}
else
{
     echo "Eintrag wurde nicht vorgenommen, da einige Felder falsch oder unvollst�ndig ausgef�llt wurden!";
}
?>

<table border="0" cellspacing="2" cellpadding="5">

<tr>
    <td width="50px"  bgcolor="#999999">Name:</td>
    <td bgcolor="#CCCCCC"><?php echo $name;?></td>
</tr>

<tr>
    <td width="50px"  bgcolor="#999999">E-Mail:</td>
    <td  bgcolor="#CCCCCC"><?php echo $email;?></td>
</tr>
<tr>
    <td width="50px"  bgcolor="#999999">Hommepage:</td>
    <td  bgcolor="#CCCCCC"><?php echo $hommepage;?></td>
</tr>
<tr>
    <td width="50px"  bgcolor="#999999">Text:</td>
    <td  bgcolor="#CCCCCC"><?php echo $text;?></td>
</tr>

</table>
</body>
</html>
 

Anhänge

  • Bildschirmfoto 2014-01-31 um 14.35.16.png
    Bildschirmfoto 2014-01-31 um 14.35.16.png
    128,5 KB · Aufrufe: 10
Werbung:
Du hast hommepage geschrieben, deine Spalte in der DB heißt aber homepage.
Was kriegst du denn für ne Meldung wenn du das Formular abschickst?
 
Werbung:
Sowohl der HTML-, als auch der PHP-Code ist einfach nur grausam. Und gerade bei einem Gästebuch sollte man die Variablen absichern und nicht einfach blind in die DB schreiben. Stichwort mysql_real_escape_string. Außerdem solltest du auf MySQLi umsteigen.
Außerdem solltest du MySQL fragen, was an deinem Insert nicht stimmt:
PHP:
mysql_query ($eintrag)
  or die ("MySQL-Fehler: " . mysql_error());
 
Mache das nicht für die Praxis sondern für eine Aufgabe. Ich studiere Webdesigne.
Deswegen geht es mir nicht um die Form es soll einfach funktionieren.
 
Werbung:
Werbung:
Ja in Zeile 18 ist offensichtlich etwas falsch. Hast du hommepage überall geändert?
Kannst auch mal zum testen direkt INSERT INTO aufgabe VALUES (...) schreiben um den Fehler einzugrenzen
 
Habe jetzt die values bei insert into geloschen und schon wurden die Daten Erfolgreich in meine Datenbank geschrieben.
Was soll ich jetzt machen????
 
Ähm, du kannst mir mit Sicherheit verraten, warum du einen Teil meines Beitrages (#5) ignorierst, oder?
 
Werbung:
Deshalb weis ich nicht was du mit deinem geschriebene meinst.
Boah, dann nehme ich dich jetzt mal ans Händchen :(

Du hast
PHP:
mysql_query ($eintrag)
 or die('Fehler beim Eintrag...');
Das habe ich geändert in
PHP:
mysql_query ($eintrag)
  or die ("MySQL-Fehler: " . mysql_error());
Und jetzt rate mal, was du damit machen sollst! Richtig! Deinen Quellcode entsprechend umbauen! Und wenn du dann Glück hast, erzählt dir MySQL, was da nicht stimmt.
 
Werbung:
Und was heißt das? Übersetze doch mal grob.

Fakt ist, dass wir deinen aktuellen Quellcode nicht kennen, und somit wird jede Hilfe zur Raterei.
 
Habe jetzt mal alle Dateien die mit dem Gästebuch zu tun haben hier:

guest_1.html:

HTML:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Bitte tragen Sie sich in unser Gaestebuch ein</title>
</head>
<body  bgcolor="#FFFFFF" text="#000000">
<form name="guest" method="post" action="guest_2.php" >
<H2>Ihr G�stebucheintrag:</H2>
   <table width="500px" border="0" cellspacing="0" cellpadding="5">
 
    <tr>
    
      <td bgcolor="#999999"  height="30px" width="80px" >Name:</td>
      <td bgcolor="#CCCCCC"  height="30px" width="420px">
        <input type="text" name="name" maxlength="50" size="25">
      </td>
    </tr>
    <tr>
      <td bgcolor="#999999"  height="30px" width="80px" >E-Mail:</td>
      <td bgcolor="#CCCCCC"  height="30px" width="420px">
        <input type="text" name="email" size="25" maxlength="50">
      </td>
    </tr>
    <tr>
      <td bgcolor="#999999"  height="180px" width="80px" >Text:</td>
      <td bgcolor="#CCCCCC"  height="180px" width="420px" >
   
          <textarea name="text" cols="45" rows="10"></textarea>
       
      </td>
    </tr>
    <tr>
      <td bgcolor="#999999"  height="30px" width="80px" >&nbsp;</td>
      <td bgcolor="#CCCCCC"  height="30px" width="420px">
        <input type="submit" name="senden" value="Senden" >
        <input type="reset" name="reset" value="L&ouml;schen">
      </td>
    </tr>
    <tr>
      <td bgcolor="#999999"  height="30px" width="80px" >Hommepage:</td>
      <td bgcolor="#CCCCCC"  height="30px" width="420px">
        <input type="text" name="hommepage" size="25" maxlength="50">
      </td>
    </tr>
  </table>
</form>
</body>
</html>

guest_2.php :

Code:
<?php
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Eintrag</title>

</head>
<body bgcolor="#FFFFFF" text="#000000">
<?php
$datum = date ("Y-m-d  H:i:s");
$name =$_POST['name'];
$email =$_POST['email'];
$hommepage =$_POST['hommepage'];
$text =$_POST['text'];


$db=mysql_connect ("localhost", "root", "Ck12121212")
or die ('Der Datenbankserver ist nicht verf�gbar...');
$db_select=mysql_select_db('gaestebuch', $db)
or die ('Das G�stebuch ist nicht verf�gbar...');


if ($name!="" && $email!="" && $hommepage!="" && $text!="")
{
    $eintrag = "INSERT INTO aufgabe (datum, name, email, hommepage, text) VALUES ('$datum', '$name', '$email', '$hommepage' '$text')";
     mysql_query ($eintrag)
  or die ("MySQL-Fehler: " . mysql_error());
     mysql_close ($db);
     echo "Ihr Eintrag wurde erfolgreich vorgenommen!";
    
}
else
{
     echo "Eintrag wurde nicht vorgenommen, da einige Felder falsch oder unvollst�ndig ausgef�llt wurden!";
}
?>

<table border="0" cellspacing="2" cellpadding="5">

<tr>
    <td width="50px"  bgcolor="#999999">Name:</td>
    <td bgcolor="#CCCCCC"><?php echo $name;?></td>
</tr>

<tr>
    <td width="50px"  bgcolor="#999999">E-Mail:</td>
    <td  bgcolor="#CCCCCC"><?php echo $email;?></td>
</tr>
<tr>
    <td width="50px"  bgcolor="#999999">Hommepage:</td>
    <td  bgcolor="#CCCCCC"><?php echo $hommepage;?></td>
</tr>
<tr>
    <td width="50px"  bgcolor="#999999">Text:</td>
    <td  bgcolor="#CCCCCC"><?php echo $text;?></td>
</tr>

</table>
</body>
</html>

guest_4.php :

Code:
<?php
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Auswahl zum Loeschen</title>
<style type="text/css">
.rot{color:red;
    font-weight:bold;
    }
</style>

</head>
<body bgcolor="#FFFFFF" text="#000000">



<form name="loeschen" method="post" action="guest_4_zugang1.php">


<table border="0" cellspacing="2" cellpadding="5">
<?php
$db=mysql_connect("localhost","root","Ck12121212")
or die('Der Datenbankserver ist nicht verf�gbar...');
$db_select=mysql_select_db('gaestebuch', $db)
or die ('Das G�stebuch ist nicht verf�gbar...');


$abfrage="SELECT * FROM guest ORDER BY datum desc";

$res=mysql_query ($abfrage)
or die('Fehler bei der Abfrage...');

$num=mysql_num_rows($res);

if ($num>0)
{
    for($i=0;$i<$num;$i++)
    {
        $datum=mysql_result($res,$i,"datum");
        $name=mysql_result($res,$i,"name");
        $email=mysql_result($res,$i,"email");
        $text=mysql_result($res,$i,"text");

        ?>
    <tr>
        <td width="50px" bgcolor="#999999" class="rot">L�schen:</td>
        <td bgcolor="#CCCCCC">
        <input type="checkbox" name="delList[]" value="<?php echo $datum;?>" />
        </td>
    </tr>
    <tr>
        <td width="50px" bgcolor="#999999">Datum:</td>
        <td bgcolor="#CCCCCC"><?php echo $datum;?></td>
    </tr>

    <tr>
        <td bgcolor="#999999">Name:</td>
        <td bgcolor="#CCCCCC"><?php echo $name;?></td>
    </tr>

    <tr>
        <td bgcolor="#999999">Email:</td>
        <td bgcolor="#CCCCCC"><a href="mailto:<?php echo $email;?>"><?php echo $email;?></a>
        </td>
    </tr>

    <tr>
        <td bgcolor="#999999">Text:</td>
        <td bgcolor="#CCCCCC"><?php echo $text;?></td>
    </tr>

    <tr>
        <td colspan="2" height="20px">&nbsp;</td>
    </tr>

    <?php
    }
}
else
{
    ?>

    <tr>
        <td colspan="2" height="20px">Keine Eintr�ge verf�gbar...</td>
    </tr>

    <?php
}
mysql_close($db);
?>

    <tr>
        <td colspan="2"><input type="submit" name="Abschicken" value="L�schen" /></td>
    </tr>

</table>
</form>

</body>
</html>

guest_3.php :

Code:
<?php
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Ausgabe</title>

</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="0" cellspacing="2" cellpadding="5">
<?php
$db=mysql_connect("localhost","root","dude")
or die('Der Datenbankserver ist nicht verf�gbar...');
$db_select=mysql_select_db('gaestebuch', $db)
or die ('Das G�stebuch ist nicht verf�gbar...');


$abfrage="SELECT * FROM guest ORDER BY datum desc";

$res=mysql_query ($abfrage)
or die('Fehler bei der Abfrage...');

$num=mysql_num_rows($res);

if ($num>0)
{
    for($i=0;$i<$num;$i++)
    {
        $datum=mysql_result($res,$i,"datum");
        $name=mysql_result($res,$i,"name");
        $email=mysql_result($res,$i,"email");
        $text=mysql_result($res,$i,"text");

        ?>

    <tr>
        <td width="50px" bgcolor="#999999">Datum:</td>
        <td bgcolor="#CCCCCC"><?php echo $datum;?></td>
    </tr>

    <tr>
        <td bgcolor="#999999">Name:</td>
        <td bgcolor="#CCCCCC"><?php echo $name;?></td>
    </tr>

    <tr>
        <td bgcolor="#999999">Email:</td>
        <td bgcolor="#CCCCCC"><a href="mailto:<?php echo $email;?>"><?php echo $email;?></a>
        </td>
    </tr>

    <tr>
        <td bgcolor="#999999">Text:</td>
        <td bgcolor="#CCCCCC"><?php echo $text;?></td>
    </tr>

    <tr>
        <td colspan="2" height="20px">&nbsp;</td>
    </tr>

    <?php
    }
}
else
{
    ?>

    <tr>
        <td colspan="2" height="20px">Keine Eintr�ge verf�gbar...</td>
    </tr>

    <?php
}
mysql_close($db);
?>



</table>
</body>
</html>
 
Da steht ja immernoch hommepage...
Du hast in deiner DB Tabelle keine Spalte die hommepage heißt (laut deinem Screenshot oben).
 
Werbung:
Wahrscheinlich weil er einen Wert zu viel / zu wenig angibt den es in der Tabelle nicht gibt

Edit:
$eintrag = "INSERT INTO aufgabe (datum, name, email, hommepage, text) VALUES ('$datum', '$name', '$email', '$hommepage' '$text')";

Da fehlt ein Komma nach '$hommepage'
 
Zuletzt bearbeitet:
Zurück
Oben