Probleme mit dem Gästebuch

  • Hi,
    ich will ein kleines Gästebuch schreiben, welches die Daten in einer Textdatei speichert. Leider wird, aus für mich unerklärlichen Gründen, das Formular nicht angezeigt und meine das schreiben in die Datei klappt auch nicht wirklich, es wird nämlich immer nur der letzte Eintrag gespeichert und der Rest gelöscht.

    Den Quelltext könnt ihr euch hier ansehen:
    http://mandrill.fuxx0r.net/c++/paste:4863

    Wäre nett wenn mir jemend sagen könnte woran das liegt.

    ciao,
    Sven

  • Hi,
    zu Deinem zweiten Problem kann ich Dir schonmal sagen, dass Du die Datei zum Anhängen öffnen musst( 'a', nicht 'w'). Dann werden neue Einträge hinten angehängt.
    Und Dein erstes Problem scheint an dem nicht geschlossenen title-Tag im head zu liegen.
    MfG
    6_freddy :)

  • jo, danke...
    Hab das mit dem Titel auch noch gemerkt :oops:

    Folgende Probleme bestehen aber noch:
    - bei jedem Seitenaufruf wird ein leerer Eintrag erstellt
    - die Anweisungen, wenn action = add ist werden nicht ausgeführt
    - der letzte Eintrag im Gästebuch steht unten und nicht wie erhofft ob

    Hier nochmal der jetztige Code:
    [php:1:6229a3025b]
    <html>
    <head>
    <title>Sven's Gästebuch</title>
    </head>
    <body>
    <?php
    if($_POST['action'] == "add")
    {
    if(empty($_POST['name']) || empty($_POST['mail']) || empty($_POST['text']))
    {
    echo "Du hast nicht alle Felder ausgef&uuml;llt !
    ";
    echo "Klicke auf den Zurück-Button deines Browsers";
    }
    else{
    $n = $_POST['name'];
    echo "Danke $n f&uuml;r deinen Eintrag!";
    }
    }
    else
    {
    ?>
    [b]Eintragen in mein G&auml;stebuch[b]

    <form action="gb.php?action=add" method="post">
    Dein Name: <input type="text" name="name" size="24">

    E-Mail: <input type="text" name="mail" size="24">

    Homepage: <input type="text" name="www" size="24">


    Dein Eintrag:

    <textarea name="text" cols="35" rows="5"></textarea>

    <input type="submit" value="Abschicken">
    <input type="reset" value="Löschen">
    </form>
    <?php
    $zeit = getdate();
    $tag = $zeit['mday'];
    $jahr = $zeit['year'];
    $stunden = $zeit['hours'];
    $minuten = $zeit['minutes'];
    $monat = $zeit['month'];
    $wochentag = $zeit['weekday'];

    switch ($wochentag)
    {
    case "Monday";
    $wochentag_de = "Montag";
    break;
    case "Tuesday";
    $wochentag_de = "Dienstag";
    break;
    case "Wednsday";
    $wochentag_de = "Mittwoch";
    break;
    case "Thursday";
    $wochentag_de = "Donnerstag";
    break;
    case "Friday";
    $wochentag_de = "Freitag";
    break;
    case "Saturday";
    $wochentag_de = "Samstag";
    break;
    case "Sunday";
    $wochentag_de = "Sonntag";
    break;
    }

    switch($monat)
    {
    case "January";
    $monat_de = "Januar";
    break;
    case "February";
    $monat_de="Februar";
    break;
    case "March";
    $monat_de="März";
    break;
    case "June";
    $monat_de="Juni";
    break;
    case "July";
    $monat_de="Juli";
    break;
    case "October";
    $monat_de="Oktober";
    break;
    case "December";
    $monat_de="Dezember";
    break;
    }

    $nummer = fopen("gaesteanzahl.txt","r");
    $zahl = fgets($nummer,10);
    $zahl=trim($zahl);
    $zahl++;
    $nummer_schreiben = fopen("gaesteanzahl.txt","w");
    fwrite($nummer_schreiben,$zahl);

    $nummer_und_datum="Nr. $zahl vom $wochentag_de, den $tag. $monat_de $jahr um $stunden.$minuten Uhr.";
    $text=nl2br($text); //Zeilenumbrüche in
    umwandeln


    $name =$_POST['name'];
    $email = $_POST['mail'];
    $homepage = $_POST['www'];
    $text = $_POST['text'];

    $eintrag="<table width=\"78%\">
    <tr><td colspan=\"2\">$nummer_und_datum</td></tr>
    <tr><td width=\"12%\">Name:</td><td width=\"88%\">$name</td></tr>
    <tr><td width=\"12%\">Email:</td><td width=\"88%\"><a href=\"mailto:$email \">$email </td></tr>
    <tr><td width=\"12%\">Homepage:</td><td width=\"88%\"><a href=\"http://%24homepage%5c" target=\"_blank\">$homepage</td></tr>
    <tr><td colspan=\"2\">$text</td></tr></table>

    \n";

    $eintraege_alt = file("gaeste.txt");
    $eintraege_anzahl = count($eintraege_alt);
    $eintraege = "$eintrag$eintraege_alt[0]";
    for($i=0; $i<$eintraege_anzahl; $i++)
    {
    $eintreage = "$eintrag$eintraege_alt[$i]";
    }
    $datei = fopen("gaeste.txt","a");
    fwrite($datei,$eintraege);
    }
    ?>
    </body>
    </html>
    [/php:1:6229a3025b]