Ich gehe davon aus, dass Du ein Gästebuch hast und von da aus gest Du auf die Seite "Eintragen".
Mach das doch nun so:
Im oberen Teil vom Gästebuch hast Du das Eingabeformular, dan folgen die Eintragungen.
Durch drücken von "Senden", kommt auf eine "neue" Seite (ist in derselben Datei), wo Du dich bedankst und die Eintragungen bestätigst. Da drückt man "Gästebuch" und gelangt zurück zum Gästebuch. Dies ist nun neu geladen.
Nebenbei: beim "Senden" würde ich gleich ein Mail an Dich senden. Dann bist Du über die Eintragungen immer informiert und kanst den Blödsinn löschen.
Das Ganze gaht so:
Beachte auch das JaveScript, strip_tags und preg_replace
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<?php include ("../headinclude-de.txt");
function mysql_die() {echo "Fehler: ";echo mysql_error();exit;}?>
<script type="text/javascript" language="JavaScript"><!--
function start(){ // setzt Curser in erstes Feld
document.forms['Gaesteeintrag'].Nachname.focus();
}
function testeFormular(){ // prueft Adresse
var formular = document.forms['Gaesteeintrag']; // kuerzt Namen zu formular
if (formular.Nachname.value == "" &&
formular.Ort.value == "" &&
formular.Beitrag.value == "" ){
alert("Bitte alle Felder mit * ausfüllen!");
document.forms['Gaesteeintrag'].Nachname.focus();
return false;
}
else{
if(formular.Nachname.value == ""){
alert("Bitte geben Sie Ihren Nachnamen ein!");
formular.Nachname.focus();
return false;
}
if(formular.Ort.value == ""){
alert("Bitte geben Sie Ihren Ort ein!");
formular.Ort.focus();
return false;
}
if(formular.Beitrag.value == ""){
alert("Bitte geben Sie Ihren Beitrag ein!");
formular.Beitrag.focus();
return false;
}
}
return true;
}
// Folgendes Script stammt im Wesentlichen von Ralf Pfeifer ([url]www.arstechnica.de[/url])
function IstZuLang(Feld, AnzZeichen){
var FehlerMeldung = "Fehler beim Ausfüllen des Formulars!nn"
var FeldLaenge = Feld.value.length
var OK = FeldLaenge <= AnzZeichen
if (!OK) {
FehlerMeldung += "Dieses Feld darf max. " + AnzZeichen
FehlerMeldung += " enthalten.nSie haben " + FeldLaenge + " Zeichen eingegeben"
alert(FehlerMeldung)
Feld.focus() }
return OK
}
function eMailAdresseOK(eMail){
if (eMail.value.length==0) { return true }
var FehlerMeldung = new String("Fehler in der eMail-Adressenn")
var PosEt = eMail.value.indexOf("@")
if (PosEt == -1) {
alert(FehlerMeldung + "Es fehlt ein @")
return eMail.focus() }
if (PosEt == 0) {
alert(FehlerMeldung + "Es fehlt der Empfänger")
return eMail.focus() }
if (eMail.value.indexOf("@", PosEt + 1) > PosEt) {
alert(FehlerMeldung + "Es darf nur ein @ enthalten sein")
return eMail.focus() }
var PosPt = eMail.value.indexOf(".", PosEt)
if ((PosPt == -1) || (PosPt - PosEt < 2) || (eMail.value.length - PosPt < 3)) {
FehlerMeldung += "Eine eMail-Adresse muß so aufgebaut sein: [email]x@x.xx[/email] "
FehlerMeldung += "Jedes x steht für mindestens ein Zeichen"
alert(FehlerMeldung)
return eMail.focus() }
var ZugelasseneZeichen = new String("abcdefghijklmnopqrstuvwxyz")
ZugelasseneZeichen += ZugelasseneZeichen.toUpperCase() + "0123456789.-_@"
return PruefeZeichen(eMail, ZugelasseneZeichen, FehlerMeldung)
}
function PruefeZeichen(Feld, ZugelasseneZeichen, FehlerMeldung){
for (var Pos = 0; Pos < Feld.value.length; Pos++)
{
if (ZugelasseneZeichen.indexOf(Feld.value.charAt(Pos)) == -1)
{ FehlerMeldung += "nnIhre Eingabe enthält das Zeichen '"
FehlerMeldung += Feld.value.charAt(Pos)
FehlerMeldung += "'. Sie dürfen nur diese Zeichen verwenden:n"
FehlerMeldung += ZugelasseneZeichen
if (ZugelasseneZeichen.indexOf(" ") == -1)
{ FehlerMeldung += "nLeerzeichen sind nicht erlaubt" }
else
{ FehlerMeldung += "nund das Leerzeichen" }
alert(FehlerMeldung)
Feld.focus()
return
}
}
}
//--></script>
</head>
<body onLoad="init(); start()" onResize="positionierung()" onScroll="positionierung()">
<a name="top"></a><div id="Marke"></div>
<?php
include ("open.inc.php4");
if(isset ($submit)){
// Mail zur Ueberpruefung
$loeschlink = "http://www.xy.xy/xy.php";
$empfaenger = "xy@xy.xy";
$text = "Nachname: ".$Nachname."nVorname: ".$Vorname."nOrt: ".$Ort."nEMail: ".$EMail."nBeitrag:n".$Beitrag;
$extra = "MIME-Version: 1.0nContent-Type: text/plain; charset=iso-8859-1nContent-Transfer-Encoding: quoted-printablen";
@mail($empfaenger,"Gästebuch","Folgender Eintrag erfolgte:nn".$text."nnLöschen: ".$loeschlink,$extra."From:xy@xy.xynX-Mailer:PHP/".phpversion());
// Eintraege an db Newsletter
if ($EMail !=""){
$query= "insert into newsletter (Vorname,Nachname,Ort,EMail,Woher)
values('$Vorname','$Nachname','$Ort','$EMail','$woher')";
$result=mysql_query($query, $conn) or mysql_die();
}
// Eintraege an db Gaestebuch
$Beitrag = strip_tags($Beitrag);
$query= "insert into gaestebuch (Vorname,Nachname,Ort,EMail,Beitrag)
values('$Vorname','$Nachname','$Ort','$EMail','$Beitrag')";
$result=mysql_query($query, $conn) or mysql_die();
require("kopfzeil-de.txt");
echo "<p class="e5"><br>Erfolgreich eingefügt!<br><br>
<a href='gaestebuch.php'><b>Zurück zu Erfassungsseite</b></a><br>";
}
else{
require("kopfzeil-de.txt");
?>
<noscript>
<p align="center"><font color="#FF0000">Ihr Browser unterstützt leider die Funktionen mit JavaScript nicht!<br>
Wahrscheinlich haben Sie eine alte Browser-Version, oder Sie haben JavaScript deaktiviert.<br>
Dadurch funktioniert das untenstehende Formular möglicher weise nicht richtig.</font></p>
</noscript>
<form method="post" action="<?php echo $PHP_SELF; ?>" onsubmit="return testeFormular()" name="Gaesteeintrag">
<table border="0" cellpadding="2" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td><p class="kl"><b>Nachname * </b></p></td>
<td><input type="text" name="Nachname" size="40" tabindex="1"></td>
</tr>
<tr>
<td><p class="kl"><b>Vorname</b></p></td>
<td><input type="text" name="Vorname" size="40" tabindex="2"></td>
</tr>
<tr>
<td><p class="kl"><b>Ort * </b></p></td>
<td><input type="text" name="Ort" size="40" tabindex="3"></td>
</tr>
<tr>
<td><p class="kl"><b>E-Mail</b></p></td>
<td>
<input type="text" name="EMail" size="40" OnBlur="eMailAdresseOK(this)" tabindex="4"></td>
</tr>
<tr>
<td valign="top"><p class="kl"><b>Beitrag * </b></p></td>
<td><textarea rows="9" name="Beitrag" cols="60" tabindex="5" wrap="soft"></textarea></td>
</tr>
</table>
<input type="hidden" name="woher" value="Gaestebuch">
<dir>
<input class="norm" type="submit" name="submit" value="Abschicken" tabindex="6">
<input class="norm" type="reset" name="reset" value="Zurücksetzen">
</dir>
</form>
<? // Verbindung mit db fuer Eintraege anzeigen
mysql_select_db("bank",$conn);
$query = "select *, DATE_FORMAT(Datum,'%d.%m.%y') as Datum_f from gaestebuch ORDER BY Datum DESC";
$result = mysql_query($query,$conn);
$num = mysql_numrows($result);
for ($i = 0; $i < $num; $i++){
$row = mysql_fetch_array($result);
echo "
<table border="0" cellpadding="1" cellspacing="1">
<tr>
<td width="60"><b>Name:</b></td>
<td width="300">$row[Vorname] $row[Nachname]</td>
<td width="60"><b>Ort:</b></td>
<td>$row[Ort]</td>
</tr>
<tr>
<td width="60"><b>Mail:</b></td>
<td width="300">";
$str = preg_replace('"([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})"i','<a href="mailto:1">1</a>', $row[EMail]);
print $str;
echo "
</td>
<td width="60"><b>Date:</b></td>
<td>$row[Datum_f]</td>
</tr>
</table>
<p>";
print nl2br($row[Beitrag]);
echo "
</p>
<hr>";
}
}
?>
</body></html>
Ich hoffe es hilft, bin aber überzeugt, das geht noch schöner.
Der Code läuft unter:
http://www.tram-museum.ch/php/gaestebuch-D.php4
Viel Spass