Hi
Ich habe ein Gästebuch geschrieben, das bei Absenden der Eingaben eine Meldung anzeigt, Danke für den Eintrag blablabla.." Ich möchte nun aber, dass diese Meldung auf einer neuen Seite (z.B. meldung.php) angezeigt wird und man dann durch einen Link wieder zurück auf das Gästebuch kommt. Der Sinn ist, dass man wenn auf den Link "zurück" klickt die Seite des Gästebuchs neugeladen wird und die neue Nachricht angezeigt wird. Wenn man das so macht wie ich bisher, dass die Meldung auf der gleichen Seite erscheint, dann sieht man den Gästebucheintrag nicht gleich und wenn man F5 (Aktualisieren) drückt, werden natürlich auch der Gästebucheintrag dupliziert, bzw. nochmal gesendet. Allerdings möchte ich auch, das bei einer Fehlereingabe, die "Fehlerausgabe" auf der Seite wieder angezeigt wird. (wie bisher)
Weiss da jemand eine Lösung? (Wenn jemand mir die uniqid()-Methode (Verhindern der erneuten Datensendung)erklären kann wäre mir auch sehr geholfen).
Hier mal mein Code:
PHP-Code:
<?php
//bestimmen der anzahl der gästebucheinträge
require('connect.php');
$anzeigen=3;
if($vor) {$start=$limit+$anzeigen;}
if($back) {$start=$limit-$anzeigen;}
if(!$start) {$start=0;}
// Auslesen der Einträge
$tabellenname="gastbuch";
$sql="SELECT absender, email, homepage betreff, message, datum FROM $tabellenname WHERE check=-1 ORDER BY datum DESC LIMIT $start , $anzeigen";
$result = mysql_query($sql, $link);
for($i=0;$i<mysql_num_rows($result);$i++)
{
$ergebnis[$i]=mysql_fetch_array($result);
}
// Ermitteln wieviele Einträge vorliegen
$sql1="SELECT check FROM $tabellenname WHERE check=-1 ";
$result1=mysql_query($sql1, $link);
$max= mysql_num_rows($result1);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>jaja</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="<?php echo $PHP_SELF; ?>" method=post>
</form>
<tr valign="top">
<td height="9" colspan="3">
<?php
require('connect.php');
//flag =1 wenn das Formular abgeschickt wurde
if($flag==1)
{
$absender=trim($absender);
$betreff=trim($betreff);
$message=trim($message);
//evtl den HTML Code entfernen
$absender=strip_tags($absender);
$betreff=strip_tags($betreff);
$message=strip_tags($message);
//testen ob alle Felder ausgefüllt sind
if(!$absender)
{
$fehler="Please insert your Name!
";
}
if(!$betreff)
{
$fehler.="Please insert the Subject!
";
}
if(!$message)
{
$fehler.="Please insert your message!
";
}
//Wenn Formular vorhanden, die Textausgabe formatieren und flag zurücksetzen, damit Forumlar neu erzeugt wird
if($fehler)
{
$meldung="<div align=center><span class=Stil30>".$fehler."</span></div>";
unset($flag);
}
else //Es liegt kein Fehler vor, Speichern der Infos in DB
{
//SQL String
$tabellenname="gastbuch";
$sql="INSERT INTO $tabellenname (absender, email, homepage, betreff, message, datum) values ('$absender', '$email', '$homepage', '$betreff', '$message', now())";
// Verbinen zu DB
mysql_query($sql, $link);
$meldung="<div align=center><span class=Stil30>Thank you for signing! Your message will be soon online!</span></div>";
//Versenden einer e-mail bei neuem Gästebucheintrag
$mtext="Es liegt ein neuer Gästebucheintrag von ";
$mtext.=$absender;
$mtext.=" vor!";
$mtext.=" Neuen Eintrag editieren: http://"";
mail('mail@adresse.de', 'Neuer Gästebucheintrag!', $mtext);
unset($absender);
unset($betreff);
unset($email);
unset($homepage);
unset($message);
}
//Ausgabe der Meldung
echo $meldung; // HIER WIRD DIE MELDUNG ANGEZEIGT DIE ICH GERNE AUSLAGERN WÜRDE !!
}
//ende flag = 1
if(!$falg)
{
?>
<div align="center"></div>
<div align="center"></div></td>
</tr>
<form action='<?php echo $PHP_SELF; ?>' method="post">
<tr valign="top">
<td height="-3"><div align="left"><span class="Stil30">Sign the [b]Guestbook[/b]: </span></div></td>
<td width="9%"><span class="Stil30"><font face="Verdana, Arial, Helvetica, sans-serif">Name:</font></span><font face="Verdana, Arial, Helvetica, sans-serif"></font></td>
<td width="41%">
<div align="left">
<input name=absender type=text class="Tabl_backgr_black" value='<?php echo $absender; ?>'>
<input type="hidden" name="flag" value=1>
</div></td>
</tr>
<tr valign="top">
<td height="-3"></td>
<td><span class="Stil38"><font face="Verdana, Arial, Helvetica, sans-serif">E-M</font></span><span class="Stil30"><font face="Verdana, Arial, Helvetica, sans-serif">ail:</font></span><font face="Verdana, Arial, Helvetica, sans-serif"></font></td>
<td><input name=email type=text class="Tabl_backgr_black" value='<?php echo $email; ?>'></td>
</tr>
<tr valign="top">
<td height="0"></td>
<td><span class="Stil38"><font face="Verdana, Arial, Helvetica, sans-serif">Homepage</font></span><span class="Stil30"><font face="Verdana, Arial, Helvetica, sans-serif">:</font></span></td>
<td><input name=homepage type=text class="Tabl_backgr_black" value='http://<?php echo $homepage; ?>'></td>
</tr>
<tr valign="top">
<td height="0"></td>
<td><span class="Stil30"><font face="Verdana, Arial, Helvetica, sans-serif">Subject:</font></span><font face="Verdana, Arial, Helvetica, sans-serif"></font></td>
<td><input name=betreff type=text class="Tabl_backgr_black" value='<?php echo $betreff; ?>'></td>
</tr>
<tr valign="top">
<td height="1"></td>
<td><span class="Stil30"><font face="Verdana, Arial, Helvetica, sans-serif">Message:</font></span><font face="Verdana, Arial, Helvetica, sans-serif"></font></td>
<td><textarea name=message cols="30" rows="5" wrap="VIRTUAL" class="Tabl_backgr_black"><?php echo $message; ?></textarea></td>
</tr>
<tr valign="top">
<td height="0"></td>
<td></td>
<td><input type=submit name=gsend class="Tabl_backgr_black" value="Sign"></td>
</tr>
</form>
<tr valign="top">
<td height="-1" colspan="3"><div align="center">
<span class="Stil30"></span>
</div></td>
</tr>
<tr valign="top">
<td height="-1" colspan="3"><span class="Stil30"></span></td>
</tr>
<tr valign="top">
<td height="0" colspan="3"><div align="center"><span class="Stil30">[b][b]<a name="gbook"></a>[/b]Guestbook[/b]</span></div></td>
</tr>
<tr valign="top">
<td colspan="3">
<?php
}
?>
<?php
//Ausgeben der Einträge
for ($i=0;$i<count($ergebnis);$i++)
{
$text=nl2br($ergebnis[$i][message]);
$text= wordwrap( $text,53 , "
", 1);
echo "<table border=1 width=400 align=center bordercolor=#999999><tr width=400><td width=77%> ".$ergebnis[$i][absender]." </td>
<td widht=400 align=right> ".$ergebnis[$i][datum]."</td></tr>";
echo "<tr width=400><td width=400 colspan=2> ".$ergebnis[$i][email]." </td></tr>";
echo "<tr width=400><td width=400 colspan=2> ".$ergebnis[$i][homepage]." </td></tr>";
echo "<tr width=400><td width=400 colspan=2> ".$ergebnis[$i][betreff]." </td></tr>";
echo "<tr width=400><td width=400 colspan=2> ".$text." </td></tr></table>";
echo "<div align=center><span class=Stil30>******</span></div>";
}
// Ausgeben der Links Vor und Zurück
echo "<table width=400 border=0 cellspacing=1 cellpadding=0 align=center><tr><td align=left>";
if($start>=$anzeigen){echo "[url='".$PHP_SELF."?limit=".$start."&back=1&#gbook']zurück[/url]";}
echo "</td><td align=right>";
if($start+$anzeigen<$max){echo "[url='".$PHP_SELF."?limit=".$start."&vor=1&#gbook']weiter[/url]";}
echo "</tr></table>";
?>
</td>
</tr>
<tr valign="top">
<td colspan="3"></td>
</tr>
<tr valign="top">
<td></td>
<td colspan="2"></td>
</tr>
<tr valign="top">
<td></td>
<td colspan="2" class="Stil32">[url="#anfang"]top[/url]</td>
</tr>
</table>
<span class="Stil12"></span></td>
</tr>
<tr>
<td><div align="center"></div></td>
</tr>
</table> </td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>