Gästebuch Code: Seite1 Seite 2 Seite 3

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Quellcode

    1. <br>
    2. <br><table border=0 width=90% bgcolor=000000 cellspacing=1 cellpadding=10>
    3. <tr><td bgcolor=ffffff> eintrag3 | 07.08.2004 | 16:56 </td></tr>
    4. <tr><td bgcolor=ffffff><br>das ist eintrag 3<p></td></tr>
    5. <tr><td bgcolor=ffffff>send a: <a href="mailto:">E-Mail</a> <br>Homepage: <a href="http://" target=blank>http://</a></td></tr></table>
    6. <br>
    7. <br>
    8. <br>
    9. <br>
    10. <br><table border=0 width=90% bgcolor=000000 cellspacing=1 cellpadding=10>
    11. <tr><td bgcolor=ffffff> eintrag2 | 07.08.2004 | 16:55 </td></tr>
    12. <tr><td bgcolor=ffffff><br>das ist eintrag2<p></td></tr>
    13. <tr><td bgcolor=ffffff>send a: <a href="mailto:">E-Mail</a> <br>Homepage: <a href="http://" target=blank>http://</a></td></tr></table>
    14. <br>
    15. <br>
    16. <br>
    17. <br>
    18. <br><table border=0 width=90% bgcolor=000000 cellspacing=1 cellpadding=10>
    19. <tr><td bgcolor=ffffff> eintrag1 | 07.08.2004 | 16:55 </td></tr>
    20. <tr><td bgcolor=ffffff><br>das ist eintrag 1<p></td></tr>
    21. <tr><td bgcolor=ffffff>send a: <a href="mailto:">E-Mail</a> <br>Homepage: <a href="http://" target=blank>http://</a></td></tr></table>
    22. <br>
    23. <br>
    24. <br>
    Alles anzeigen
  • du hast eine variable namens $seite, die angibt, auf welcher seite man sich befindet. nun änderst du die schleifenbedingung, mit der die textdatei ausgelesen wird, entsprechend ab, damit nur 20 beiträge auf einmal angezeigt werden.
    edit: wahrscheinlich schreib ich dir am besten mal gleich die schleifenbedingung:

    PHP-Quellcode

    1. <?php
    2. $seite = $_GET["seite"];
    3. if(!$seite) $seite = 1;
    4. // Die obrigen Zeilen am bestne an den Anfang der Datei. Definiert die Variable $seite.
    5. $file = file("datei.txt");
    6. // Liest den Inhalt der Datei datei.txt als zeilenweisen Array ein.
    7. $seiten = ceil(count($file)/20);
    8. // Die Anzahl der Seiten wird berechnet. Die Anzahl der Einträge, also der Zeilen in datei.txt wird durch 20 geteilt und aufgerundet
    9. // Siehe dazu: http://de.php.net/ceil
    10. for($i = 20*$seite-20; $i < 20*$seite; $i++) {
    11. // Die Schleifenbedingung: Es wird bei Zeile 20*$seite-20 mit dem Auslesen begonnen
    12. // Solange $i kleiner ist als 20*$seite, wird der Inhalt der Schleife wiederholt
    13.  if($i>=count($file)) break;
    14. // Sollte $i bei der letzten Zeile angelangt sein, wird außerdem auch noch abgebrochen
    15. // Hier kommt der Inhalt der Schleife hin
    Alles anzeigen
  • also bei mir funktioniert das nicht!
    er zeigt mir an dass ich in der line 126 einen fehler habe (das ist die unterste wo </html> steht)
    hab hier mal den ganzen code rein getan damit ihr euch ein bischen ein besseres bild machen könnt.

    Quellcode

    1. <html>
    2. <head>
    3. <title>Gästebuch</title>
    4. <META HTTP-EQUIV="imagetoolbar" CONTENT="no">
    5. </head>
    6. <body background="../bg/bglogo%20Kopie.jpg" bgproperties="fixed" vlink="#000000" alink="#000000" link="#000000">
    7. <div align="center">
    8. <a href="eintrag.html" target="_self">Neuer Eintrag</a><br>
    9. <br>
    10. <?php
    11. $seite = $_GET["index.php"];
    12. if(!$seite) $seite = 1;
    13. // Die obrigen Zeilen am bestne an den Anfang der Datei. Definiert die Variable $seite.
    14. $file = file("gbook.txt");
    15. // Liest den Inhalt der Datei datei.txt als zeilenweisen Array ein.
    16. $seiten = ceil(count($file)/20);
    17. // Die Anzahl der Seiten wird berechnet. Die Anzahl der Einträge, also der Zeilen in datei.txt wird durch 20 geteilt und aufgerundet
    18. // Siehe dazu: <a href='http://de.php.net/ceil' target='_blank'>http://de.php.net/ceil</a>
    19. for($i = 20*$seite-20; $i < 20*$seite; $i++) {
    20. // Die Schleifenbedingung: Es wird bei Zeile 20*$seite-20 mit dem Auslesen begonnen
    21. // Solange $i kleiner ist als 20*$seite, wird der Inhalt der Schleife wiederholt
    22. if($i>=count($file)) break;
    23. // Sollte $i bei der letzten Zeile angelangt sein, wird außerdem auch noch abgebrochen
    24. // Hier kommt der Inhalt der Schleife hin
    25. // hier holen wir die mit <form> gesendeten Daten
    26. $name = $HTTP_POST_VARS['name'];
    27. $email = $HTTP_POST_VARS['email'];
    28. $homepage = $HTTP_POST_VARS['homepage'];
    29. $text = $HTTP_POST_VARS['text'];
    30. // wurde auf den submit-button gedrückt?
    31. if($submit)
    32. {
    33. // hier wird geprüft ob email, name & text ordnungsgemäß ausgefüllt sind.
    34. if(($name == "") || ($text == ""))
    35. echo "<b>Fehlgeschlagen! Bitte alle Felder ausfüllen!</b>";
    36. // wenn alle Felder ausgefüllt sind, gehts hier weiter...
    37. else
    38. {
    39. // Variable X wird auf null gesetzt
    40. $x = 0;
    41. $dateiname = "gbook.txt";
    42. // hier wird die Datei 'gbook.txt' geöffnet um
    43. // die 'vorhandenen' Einträge zu lesen.
    44. // 'R' bedeutet READ
    45. $datei = fopen($dateiname, "r");
    46. // mit 'WHILE (!feof($datei))' wird die Datei Zeile für Zeile
    47. // ausgelesen und in die Variable '$saved[x]' gespeichert!
    48. // Das wird gebraucht um die neuesten Einträge OBEN anzuzeigen!
    49. while (!feof($datei)) {
    50. $x++;
    51. $saved[$x] = fgets($datei, 1024);
    52. }
    53. // Datum und Uhrzeit ermitteln
    54. $datum = date("d.m.Y");
    55. $zeit = date("H:i");
    56. // Hier wird in die Datei 'gbook.txt' geschrieben.
    57. // 'W' bedeutet WRITE
    58. $datei=fopen("gbook.txt", "w");
    59. // Strip_tags entfernt HTML- & PHP-Tags aus der Nachricht
    60. $text=strip_tags($text);
    61. // Hier wird der neue Eintrag in die Datei geschrieben
    62. $text=str_replace(":)", "<img width=15 height=15 src=images/laugh.gif>", $text);
    63. $text=str_replace(":(", "<img width=15 height=15 src=images/whine.gif>", $text);
    64. $text=str_replace(":D", "<img width=15 height=15 src=images/bigsmile.gif>", $text);
    65. $text=str_replace(":rofl:", "<img width=40 height=15 src=images/rofl.gif>", $text);
    66. $text=str_replace(":'(", "<img width=15 height=15 src=images/sad.gif>", $text);
    67. $text=str_replace("?!", "<img width=15 height=22 src=images/what.gif>", $text);
    68. $text=str_replace(":P", "<img width=15 height=15 src=images/zunge.gif>", $text);
    69. $text=str_replace(":fyou:", "<img width=35 height=15 src=images/fuck.gif>", $text);
    70. $text=str_replace(":lol:", "<img width=45 height=40 src=images/lol.gif>", $text);
    71. $text=str_replace(":@", "<img width=20 height=20 src=images/devil.gif>", $text);
    72. $text=str_replace(":dito:", "<img width=41 height=46 src=images/dito.gif>", $text);
    73. $text=str_replace(":!:", "<img width=16 height=16 src=images/caution.gif>", $text);
    74. $text=str_replace(":ausgezeichnet:", "<img width=60 height=60 src=images/mrburns.gif>", $text);
    75. $text=str_replace(":sry:", "<img width=40 height=33 src=images/sorry.gif>", $text);
    76. $text=str_replace(":motz:", "<img width=31 height=20 src=images/motz.gif>", $text);
    77. $text=str_replace(":S", "<img width=20 height=20 src=images/-.-.gif>", $text);
    78. $text=str_replace(":kenny:", "<img width=32 height=32 src=images/keny.gif>", $text);
    79. $text=str_replace(":snoop:", "<img width=175 height=15 src=images/snoop.gif>", $text);
    80. $text=str_replace(":prost:", "<img width=55 height=18 src=images/prost.gif>", $text);
    81. $text=str_replace(":rock:", "<img width=29 height=25 src=images/rock.gif>", $text);
    82. fwrite($datei,"<br>
    83. <br><table border=0 width=90% bgcolor=000000 cellspacing=1 cellpadding=10>
    84. <tr><td bgcolor=ffffff> $name | $datum | $zeit </td></tr>
    85. <tr><td bgcolor=ffffff><br>$text<p></td></tr>
    86. <tr><td bgcolor=ffffff>send a: <a href=\"mailto:$email\">E-Mail</a> <br>Homepage: <a href=\"$homepage\" target=blank>$homepage</a></td></tr></table>
    87. <br>
    88. <br>
    89. <br>\n");
    90. // ...und danach die vorher ausgelesenen Zeilen hinten dran schreiben..
    91. for ($i=1;$i <= $x; $i++) {
    92. fwrite($datei, "$saved[$i]");
    93. }
    94. // Datei schliessen
    95. fclose($datei);
    96. }
    97. }
    98. // die Einträge auslesen & anzeigen
    99. $dateiname = "gbook.txt";
    100. $datei = fopen($dateiname, "r");
    101. fpassthru($datei);
    102. ?>
    103. </div>
    104. </body>
    105. </html>
    Alles anzeigen
  • hm.... die for-schleife beginnt mit einem { und hört mit einem } auf. dazwoschen muss der code rein, der dann die datei ausliest. so wie du dein guestbook aber programmiert hast kann man aber mit ner for-schleife schlecht die datei auslesen, da eine zeile bei dir nicht einen eintrag darstellt. du speicherst ja direkt den html-code ab und nicht nur die daten. um zu verdeutlichen was ich meine, geb ich jetzt mal ein beispiel:
    wenn ich ein guestbook programmiere, sieht die textdatei ungeföhr so aus:

    Quellcode

    1. Andi|andi@web.de|Tolle Seite! Echt gut gemacht.|
    2. Christian|christian45@gmx.net|An der Seite kann man noch einiges verbessern.|


    Deine Datei sieht dementsprechend so aus:

    Quellcode

    1. <br>
    2. <br><table border=0 width=90% bgcolor=000000 cellspacing=1 cellpadding=10>
    3. <tr><td bgcolor=ffffff> Andi | 10.08.2004 | 23:27 </td></tr>
    4. [usw.]

    In deiner Version ist es sehr schwierig, ja fast unmöglich zu ermitteln, wieviele Einträge das Guestbook denn hat. Bei mir muss man ja einfach nur die Anzahl die Zeilen zählen. Bei dir wüsste ich im Moment keinen konkreten Lösungsansatz. Irgendwie die Datei in mehrere Stücke aufteilen mittels explode() und anhand von </table>, aber dann würden die stören.

    Jedenfalls, wenn man nicht zählen kann, wieviele Einträge das Guestbook hat, kann man auch nicht machen, dass die Einträge ab einer gewissen Anzahl auf mehrere Seiten aufgeteilt werden.
  • jo klaro.
    die leute füllen ja irgendein formular aus, wo die ihre daten eingeben. diese daten schreibst du dann z.b. mit einem | aneinander in eine zeile und fügst diese zeile in deine textdatei ein.
    beim auslesen kannst du dann den inhalt der textdatei mittels [phpdoc]file[/phpdoc] in einen array, den du in einer for-schleife dann ausliest. die einzelnen zeilen kannst du dann mittels [phpdoc]explode[/phpdoc] wieder in ihre bestandteile zerlegen und somit den inhalt des guestbooks darstellen.