Geschrieben von Düdi am 10.04.2010 um 20:35:
Ich glaub ich bin einfach zu dämlich.
Wo liegt der Fehler?
<html>
<head>
<title>Gästebuch</title>
</head>
<body>
<h1>Gästebuch</h1>
Ich freu mich immer über einen netten Gästebucheintrag.<br />
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="guestbook">
<input type="hidden" name="flag" value="1">
<table>
<tr>
<td>Dein Name:</td>
<td><input type="text" name="absender" value="<?php echo $_POST['absender']; ?>"></td>
</tr>
<tr>
<td>Deine E-mailadrese:</td>
<td><input type="text" name="mail" value="<?php echo $_POST['mail']; ?>"></td>
</tr>
<tr>
<td>URL zu deiner Homepage:</td>
<td><input type="text" name="hp" value="<?php echo $_POST['hp']; ?>"></td>
</tr>
<tr>
<td>Dein Text:</td>
<td><textarea name="text" style="height: 150px; width: 429px;"><?php echo $_POST['text']; ?></textarea>
</td>
</tr>
</table>
<input type="submit" value="Eintragen">
</form>
<?php
//$_POST['flag']==1, wenn das Formular abgeschickt wurde
if($_POST['flag']==1)
{
//Leerstellen entfernen
$_POST['absender']=trim($_POST['absender']);
$_POST['mail']=trim($_POST['mail']);
$_POST['hp']=trim($_POST['hp']);
$_POST['text']=trim($_POST['text']);
//evtl. vorhandene HTML-Codes entfernen
$_POST['absender']=strip_tags($_POST['absender']);
$_POST['mail']=strip_tags($_POST['mail']);
$_POST['hp']=strip_tags($_POST['hp']);
$_POST['text']=strip_tags($_POST['text']);
//testen, ob alle Felder ausgefüllt sind
if(!$_POST['absender']){$fehler="Bitte gib Deinen Namen an! <br>";}
if(!$_POST['text']){$fehler="Bitte gib eine Nachricht ein! <br>";}
/*
Wenn Fehler vorhanden, die Textausgabe formatieren und $_POST['flag'] zurücksetzen, damit das Formular erneut angezeigt wird
*/
if($fehler)
{
$meldung="".$fehler."";
unset($_POST['flag']);
}
else //wenn alles ok ist, geht es weiter
{
//Zugangsdaten includen
include ("config.inc.php");
//Zeit und Datum ermitteln
$date = date("d.m.Y");
$time = date("H:i");
//sql-String zusammenbauen
$tabellenname="gb";
$sql="INSERT INTO `gb` ( `id` , `date` , `time` , `name` , `mail` , `hp` , `text` )VALUES ('', '$date', '$time', '".$_POST['absender']."', '".$_POST['mail']."', '".$_POST['hp']."', '".$_POST['text']."');" ;
//Verbindung zur Datenbank
$link = mysql_connect("$dbhost", "$dbuser", "$dbpasswd");
mysql_select_db("$db", $link);
mysql_query($sql, $link);
$meldung="Ihre Angaben wurden aufgenommen und werden im Gästebuch eingetragen. <a href=\"gb.php\" target=_self>Weiter</a>";
}
//Ausgeben der Meldung
echo $meldung;
}//Ende $_POST['flag']==1
if(!$_POST['flag'])
{
?>
<?php
}
?>
<?php
//Zugangsdaten includen
include ("config.inc.php");
$anzeigen=5; //Anzahl der Datensätze, die auf einer Seite angezeigt werden sollen
if($_GET['vor']){$start=$_GET['limit']+$anzeigen;}
if($_GET['back']){$start=$_GET['limit']-$anzeigen;}
if(!$start){$start=0;}
//Auslesen der Einträge
$tabellenname="gb";
$sql="SELECT id, date, time, name, mail, hp, text FROM $tabellenname ORDER BY id DESC LIMIT ".$start.", ".$anzeigen;
$link = mysql_connect("$dbhost", "$dbuser", "$dbpasswd");
mysql_select_db("$db", $link);
$result = mysql_query($sql, $link);
for($i=0;$i<mysql_num_rows($result);$i++)
{
$ergebnis[$i]=mysql_fetch_array($result);
}
//Ermitteln, wie viele Einträge vorliegen
$sql1="SELECT COUNT(*) FROM $tabellenname ";
$result1 = mysql_query($sql1, $link);
$max= mysql_result($result1,0,0);
//Ausgeben der Einträge
for($i=0;$i<count($ergebnis);$i++)
{
$text=nl2br($ergebnis[$i]['text']);
echo ("
<br /><br /><table>
<tr>
<td>".$ergebnis[$i]['name']." (<a href=\"mailto:".$ergebnis[$i]['mail']."\">Mail</a> | <a href=\"".$ergebnis[$i]['hp']."\" target=_blank>WWW</a>) schrieb am ".$ergebnis[$i]['date']." um ".$ergebnis[$i]['time']." Uhr: </td>
</tr>
<tr>
<td>".$text."</td>
</tr></table>");
}
//Ausgeben der Links vor und zurück
echo "<table border=\"0\" width=\"100%\"><tr><td align=\"left\">";
if($start>=$anzeigen){echo "<a href=\"".$_SERVER['PHP_SELF']."?limit=".$start."&back=1\">Zurück</a>";}
echo "</td><td align=\"right\">";
if($start+$anzeigen<$max-1){echo "<a href=\"".$SERVER['PHP_SELF']."?limit=".$start."&vor=1\">Weiter</a>";}
echo "</tr></table>";
?>
</body>
</html>
Das Formular zum Einfügen des Gästebucheintrages ist sichtbar, nach dem Ausfüllen kommt auch der Text, aber anstelle von Einträgen steht dort
"Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/andrealein/gb.php on line 103
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/andrealein/gb.php on line 111"
Wenn ihrs euch so anschauen wollt,
hier
Könnt ihr mir helfen?