Hilfe Mit GÄstebuch

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Hilfe Mit GÄstebuch

    Hi, bin total verzweifelter anfänger. hab auf meiner page ein php gästebuch eingefügt. jedoch folgendes problem. immer wenn jemand im text einen zeilenumbruch macht (enter drückt) verschiebt sich das ganze gästebuch total. Könnt ihr mir vielleicht sagen was im skript falsch ist? Vielen Dank im Voraus. Lg, Alex

    <?php

    $file='./gaestebuch.txt';

    error_reporting(1);
    $mode=$_GET['mode'];
    if($mode!='view' && $mode!='sign') $mode=$_POST['mode'];
    if($mode!='view' && $mode!='sign') $mode='sign';
    $name=$_POST['name'];
    $site=$_POST['site'];
    $comments=$_POST['comments'];
    $date=date('l, F dS, Y (g:i A T)');
    $self=$_SERVER['PHP_SELF'];

    ($handle=fopen($file,'a+') or die("Could not open file: $file"));

    if($mode=='sign')
    {
    if($name!='') fwrite($handle,"$date\n$name\n$site\n$comments\n");
    echo "<form method='post' action='$self'>
    <input type='hidden' name='mode' value='sign'>
    <b>date</b>: $date
    <p><b>name</b>: <input type='text' name='name'>
    <p><b>email</b>: <input type='text' name='site'>
    <br><br><textarea name='comments' cols='30' rows='5'></textarea>
    <p><input type='submit' value='send'>
    </form>
    <br><b><a href=\"$self?mode=view\">View my Guestbook</a></b>";
    }
    else
    {
    $a=array_reverse(file($file));
    for($i=0;$i<count($a)-3;$i+=4)
    {
    $web=$a[$i+1];
    if(substr($web,0,7)!='http://') $web=" $web";
    echo '<b>date</b>: '.htmlentities($a[$i+3]);
    echo '<p><b>name</b>: '.htmlentities($a[$i+2]);
    echo "<p><b>email</b>: <a href='mailto:\"$web'>".htmlentities($web).'</a>';
    echo '<p><b>text</b>:<br>'.htmlentities($a[$i]);
    echo '<p><hr><p>';
    }
    echo "<b><a href=\"$self?mode=sign\">Sign the Guestbook</a></b>";
    }

    fclose($handle);

    ?>

  • #2
    Gilt auch für PHP-Anfänger!

    Btw. ist das bei der Ausgabe oder bei der Eingabe (eingeben des Eintrages) so?
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Es passiert bei der Ausgabe. Wenn man die gesamten Einträge nach der Eingabe anschaut, steht alles total verschoben

      Kommentar


      • #4
        problem ist folgendes:
        der speichert so:
        datum:datum
        name:name
        mail:email
        text:textzeile1
        textzeile2
        textzeile3

        aufrufen tut der dann aber:
        text: textzeile3
        mail: textzeile2
        name: txtzeile1
        datum: email


        problemlösung:
        du musst aus den eingegeben text die zeilenumbrüche durch ein anderes zeichen ersetzen, damit der alles in eine zeile speichert. beim auslesen musst du dieses zeichen wieder durch einen zeilenumbruch erstetzen lassen.


        --> einfacher: alles über mysql. dann kannste hinterher auch noch datensätze löschen lassen usw...
        kann dir auch helfen, wenn du das über mysql lösen möchtest

        Kommentar

        Lädt...
        X