Mastershrimp: Shoutbox/Gästebuch: Einträge doppelt erstellt

Beitrag lesen

Hallo!

Ich habe folgendes Problem:
Ich wollte zum Festigen meiner (noch rel. geringen) PHP-Kenntnisse eine Art Shoutbox oder Gästebuch machen. Bis jetzt hat auch alles gut geklappt, doch wenn ich jetzt einen Eintrag abschicke, wird er 2x erstellt. Einmal mit Inhalt und einmal ohne....

Ich habe den Code aus einem Buch übernommen und etwas abgespeckt, da ich nicht alle Funktionen brauchte. Meiner Ansicht nach sind aber alle relevanten Elemente übernommen - es müsste also funktionieren.

Hier könnt ihr das Phänomen mal begutachten:
http://mitglied.lycos.de/mastershrimp/shoutbox.html

Das dazugehörige PHP-Script befindet sich in der Datei "shoutbox.php":

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Shoutbox-PHP-Script</TITLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#800000" ALINK="#FF00FF" BACKGROUND="?">

<?php

$benutzer=$HTTP_POST_VARS['Name'];
 $kommentar=$HTTP_POST_VARS['Kommentar'];
 $titel=$HTTP_POST_VARS['Titel'];

$punkt=".";
 $dpunkt=":";

$datum=date(d);
 $datum.=$punkt;
 $datum.=date(m);
 $datum.=$punkt;
 $datum.=date(Y);

$zeit=date(G);
 $zeit.=$dpunkt;
 $zeit.=date(i);
 $zeit.=$dpunkt;
 $zeit.=date(s);

$eintrag="<!-- Beginn -->";
 $eintrag.="\n<br><div class='eintrag'>";
 $eintrag.=$benutzer;
 $eintrag.=" schrieb am ";
 $eintrag.=$datum;
 $eintrag.=" um ";
 $eintrag.=$zeit;
 $eintrag.=" folgendes Kommentar: ";
 $eintrag.="\n<br>";
 $eintrag.=$kommentar;
 $eintrag.="\n<br></div>";

$bol=file_exists('shoutbox.html');
 if($bol)
  {
   $datei=fopen("shoutbox.html","r");
   if($datei)
    {
     $dateigroesse=filesize("shoutbox.html");
     $inhalt=fread($datei,$dateigroesse);
     fclose($datei);
    }
   $ersetzen=str_replace("<!-- Beginn -->",$eintrag,$inhalt);
  }
 $bol=file_exists("shoutbox.html");
 if($bol)
  {
   $datei=fopen("shoutbox.html","w");
   if($datei)
    {
     $output=fwrite($datei,$ersetzen);
     fclose($datei);
     $ergebnis="Danke für deinen Eintrag!";
     $ergebnis.="\n<br>";
     $ergebnis.="<a href='shoutbox.html'>Zurück zur Hauptseite!</a>";
     print($ergebnis);
    }
  }

?>

</BODY>
</HTML>

Der Rest ist in der Datei "shoutbox.html":

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Shoutbox v.1.0a</TITLE>

<style type="text/css">
<!--
 body
     {
      background-color:#4A4A4A; margin: 0.5cm;
      text-align:center; color:FFFFFF; font-size:10pt; font-family:Arial,Verdana;
     }

td { color:FFFFFF; font-size:10pt; font-family:Arial,Verdana; }

input.eingabe{ background-color:#4A4A4A; color:#FFFFFF; font-family:Courier; border-style:solid; border-width:1px; border-color:#FFFFFF; }

textarea.eingabe{ background-color:#4A4A4A; color:#FFFFFF; font-family:Courier; border-style:solid; border-width:1px; border-color:#FFFFFF; }

input.button{ color:#FFFFFF; background-color:#4A4A4A; font-size:8pt; font-family:Arial; border-style:solid; border-width:1px;}

*.eintrag{ width:400px; border-style:solid; border-color:#FFFFFF; border-width:1px; background-color:#4A4A4A; color:#FFFFFF; padding:10px; }
-->
</style>

</HEAD>

<BODY>

<h3>Shoutbox</h3>
<form action="shoutbox.php" method="post">

<TABLE ALIGN="center" BORDER=0 CELLSPACING=10 CELLPADDING=0 WIDTH="280">
<TR ALIGN="left" VALIGN="middle">
 <TD>Dein Name:</TD>
 <TD><input class="eingabe" type="text" name="Name" size="20" maxlength="20"></TD>
</TR>
<TR ALIGN="left" VALIGN="middle">
 <TD>Titel:</TD>
 <TD><input class="eingabe" type="text" name="Titel" size="20" maxlength="20"></TD>
</TR>
<TR ALIGN="left" VALIGN="top">
 <TD>Dein Kommentar:</TD>
 <TD><textarea class="eingabe" name="Kommentar" rows="7" cols="18"></textarea></TD>
</TR>
<TR ALIGN="center" VALIGN="middle">
 <TD colspan="2"><input class="button" type="submit" value="Senden">   <input class="button" type="reset" value="Reset"></TD>
</TR>
</TABLE>
</form>
<hr width="50%">
<br>
Bisherige Einträge:
<br>
<br>
<!-- Beginn -->

</BODY>
</HTML>

Weiß jemand, wie ich das Doppelposting-Phänomen beheben kann?

Danke im Vorraus!

Gruß

Mastershrimp