PHP4-Forum
Forum | Befehle | MySQL | Beispiele | Newsletter | Suche | Home

Untermenü

Beispiele
Datenbankbasiert
Dateibasierte
Spiele
Sonstige

Zu dieser Seite

Dateibasierte
GĂ€stebuch
Suchmaschine
Counter
Emailanhang
Quellcode
Upload
Sitemap erstellen
IP Sperre
Datenbankanbindung
Gästebuch

Download | Testen

Dieses Beispiel wurde uns von Thomas Gauweiler zur VerfĂŒgung gestellt. Das ist ein dateibasiertes GĂ€stebuch, das im Gegensatz zu unserem Beispiel keine Datenbank benötigt.



Seite 1: (HTML-Formular) buch.html
<table><tr><FORM ACTION="save.php3" METHOD=POST>
  <td>Name:</td>
  <td><INPUT TYPE=text NAME=name SIZE=30 MAXLENGTH=150></td>
</tr><tr>
  <td>Email:</td>
  <td><INPUT TYPE=TEXT NAME=email SIZE=30 MAXLENGTH=50></td>
</tr><tr>
  <td> </td>
  <td><input type=checkbox name=open checked>
<font size=1>Soll die Emailadresse spÀter im GÀstebuch angezeigt werden?</td>
</tr><tr>
  <td>Homepage:</td>
  <td><INPUT TYPE=TEXT NAME=hp SIZE=30 MAXLENGTH=255></td>
</tr><tr>
  <td>Meinung:</td>
  <td><textarea name="inhalt" rows="6" cols="25"></textarea></td>
</tr><tr>
  <td> </td>
  <td><input type=submit value="Absenden"></td></form>
</tr></table>


Seite 2: ("save.php3" - Speichert neue EintrĂ€ge ab.) Beachten Sie bitte, dass diese Seite keine HTML-Ausgaben macht! Keine Leerzeichen oder sonstiges! Außerdem setzen Sie bitte die Schreibrechte chmod 777 auf das Verzeichnis, in dem das GĂ€stebuch liegt, ansonsten kann die Datei nicht erstellt werden, in der EintrĂ€ge gespeichert werden sollen.
<?php
function my_nl2br ($text) {
  $retvalue="";
  for ($ii=0; $ii < strlen($text); $ii++){
    if ($text[$ii]!=chr(13)) // diese Zeile fehlt wohl in der Originalroutine
      $text[$ii]=="\n" ? $retvalue .= "<br>" : $retvalue .= $text[$ii];
  }
  return $retvalue;
}


if (!file_exists("guestbook.csv"))  fclose(fopen("guestbook.csv","w+"));

if ($inhalt) { 

    $lines=file("guestbook.csv");
  $num=sizeof($lines);
  if ($num) {
    $entry=explode ("”", $lines[$num-1]); // zerlege letzte Zeile
    $index=$entry[0]+1;
  } else $index=1;

  $fp=fopen("guestbook.csv","a");

  $datum=date("YmdHis"); 
  $inhalt=addslashes($inhalt); 
  $name=addslashes($name); 
  if ($name == "") $name="unbekannt"; 
  if (!$open) $open="";

  fwrite($fp, my_nl2br(implode(array ($index, $name, $email, $open, $hp, $inhalt, "", $datum) ,"”")) . "\n");
  fclose($fp);


header("HTTP/1.0 302 Moved\nLocation: gaestebuch.php3?z=1"); 

?> 


Seite 3: ("gaestebuch.php3" - Die GÀstebuch-EintrÀge werden ausgelesen und angezeigt)
<?
// es werden immer max. 10 EintrÀge angezeigt.
// optionaler Parameter: z (welche der 10 EintrÀge)
// falls nicht angegeben, dann die ersten 10.

if (!file_exists("guestbook.csv"))  fclose(fopen("guestbook.csv","w+"));

$lines=file("guestbook.csv");

// Anzahl der Seiten und weitere Variablen

$num=sizeof($lines);
arsort($lines); // den neuesten Eintrag zuerst

$seiten=ceil($num / 10);
if (!$z) $z=1;
$y=$z * 10; 
$x=$y - 10;
if ($y > $num) $y=$num;

if ($num > 0) {
  for ($i= $x; $i< $y ; $i++) {

    $entry=explode ("”", $lines[$i]);     $nr=$entry[0];
    $name=$entry[1];
    $open=$entry[3];
    if ($open == "on") {
      $email=$entry[2];
      if (strlen($email)< 8) $email="";
      else $name="<A HREF='mailto:$email'>$name</A>";
    }
    $hp=$entry[4];
    if ($hp != "") $hp="| <A HREF='$hp' TARGET=_new>Homepage</A>";
    $inhalt=$entry[5];
    $kommentar=$entry[6];
    if ($kommentar != "") $kommentar="<BR><FONT COLOR=
    // Formatierung des datums
    $datum=$entry[7];
    $jahr=substr($datum,2,2);
    $monat=substr($datum,4,2);
    $tag=substr($datum,6,2);
    $stunde=substr($datum,8,2);
    $minute=substr($datum,10,2);
    $datum="$tag-$monat-$jahr | $stunde:$minute";
?>

    <TABLE WIDTH=95% BGCOLOR=      <tr>
        <td><B><? echo "<B>$name $hp</B>"; ?></td>
        <TD ALIGN=RIGHT>
          <? echo "$datum<br>"; ?></td>
      </tr>
    </TABLE><BR>

<?
    echo "$inhalt $kommentar<P>";

    flush();
  }


} else echo "Es gibt noch keine EintrÀge im GÀstebuch";


// Weiter unten

if ($num > 10) {
  echo "<B><CENTER>";
  $vor=$z - 1; 
  $next=$z + 1;
  if ($vor != 0) echo "<A HREF='gaestebuch.php3?z=$vor'>";
  echo "Vorherige";
  if ($vor != 0) echo "</A>";
  echo " | ";
  if ($next <= $seiten) echo "<A HREF='gaestebuch.php3?z=$next'>";
  echo "Weitere";
  if ($next <= $seiten) echo "</A>";
  echo "</B></CENTER><P>";
}

?> 


Seite 4: ("gast.php3" - sollte in einem PasswordgeschĂŒtzten Bereich liegen)
Diese Seite ist der "Artikelverwaltung" Àhnlich.
<?
// "gast.php3" - sollte in einem PasswordgeschĂŒtzten Bereich liegen z.b. cgi-bin/admin/
function my_nl2br ($text) {
  $retvalue="";
  for ($ii=0; $ii < strlen($text); $ii++){
    if ($text[$ii]!=chr(13)) // diese Zeile fehlt wohl in der Originalroutine
      $text[$ii]=="\n" ? $retvalue .= "<BR>" : $retvalue .= $text[$ii];
  }
  return $retvalue;
}
?>

<html>
<body> 
  <H3>GĂ€stebuchvervaltung</H3> 

  <? 
  if (!file_exists("../guestbook.csv"))  fclose(fopen("../guestbook.csv","w+"));
  $lines=file("../guestbook.csv");
  $num=sizeof($lines);

  // ------- Löscht einen Eintrag aus der Datenbank------------

  if ($action == "loeschen") { 
    for ($i=0; $i < $num; $i++) {
      $entry=explode ("”", $lines[$i]); // zerlege i-te Zeile
      if ($entry[0] == $nr) {
    $num--;
    for ($j=$i; $j < $num; $j++)
    $lines[$j]=$lines[$j+1];
      }
    }
    $meldung="Der Eintrag wurde gelöscht.<P>"; 
  } 

  // ------- FĂŒgt einen Kommentar ein -----------------------

  if ($action == "save") { 
    for ($i=0; $i < $num; $i++) {
      $entry=explode ("”", $lines[$i]); // zerlege i-te Zeile
      if ($entry[0] == $nr) {
    $entry[6]=my_nl2br(addslashes($kommentar));
      }
      $lines[$i]=implode($entry,"”");
    }
    $meldung="Das Kommentar wurde eingefĂŒgt.<P>"; 
  } 

  // -------Selektiert den ausgewĂ€hlten Artikel zum Updaten-----

  if ($action == "update") { 

    ?> 

    <TABLE> 
    <FORM ACTION=gast.php3 METHOD=GET> 
      <INPUT TYPE=HIDDEN NAME=action VALUE="save"> 
      <INPUT TYPE=HIDDEN NAME=nr VALUE="<? echo $id ?>"> 
        <tr> 
          <td><B>Ihr Kommentar:</B><BR><TEXTAREA NAME="kommentar" ROWS="5" COLS="45">
            <? echo $kommentar ?>
        </TEXTAREA></td> 
        </tr><tr> 
          <td><INPUT TYPE=SUBMIT VALUE="Eintrag Updaten"></FORM></td>
        </tr> 
    </TABLE><P> 

    <? 

  } 
  if (!$meldung) $meldung="Optionen<P>"; 
    echo "$meldung"; 
  ?> 
  <OL><B>Alle EintrĂ€ge in Übersicht:</B> 
  <? 
  // ----Gibt alle DatensĂ€tze der Tabelle gast aus.----

  if ($num > 0) { 

    for($i=0;$i < $num; $i++) { 
      $entry=explode ("”", $lines[$i]);       $nr=$entry[0]; 
      $name=$entry[1];
      $inhalt=$entry[5];
      $kommentar=$entry[6];
      echo "<LI> $name - <A
      HREF='gast.php3?id=$nr&action=update&kommentar=$kommentar'>Kommentar einfĂŒgen</A> - 
      <A HREF='gast.php3?nr=$nr&action=loeschen'>Eintrag Löschen</A><BR>
      $inhalt<BR><FONT COLOR=RED>$kommentar</FONT><P>"; 
    } 

  } else { echo "<li>Es gibt keine DatensĂ€tze in der Datenbank<P>"; } 

    $fp=fopen("../guestbook.csv","w+");
  for ($i=0; $i < $num; $i++)
    fwrite($fp, $lines[$i]);
  fclose($fp);
  ?> 

  <P><A HREF="../gaestebuch.php3">Zur Startseite</A> 
  </OL> 
</BODY></HTML>


Das Design ist selbstverstĂ€ndlich Geschmacksache und sollte dementsprechend angepasst werden... Sollten Sie keine Lust haben, eigenes GĂ€stebuch zu bauen, stellen wir Ihnen ein gern zur VerfĂŒgung.
Dienstleistungen | Werbung | Impressum | Sitemap | Kontakt | Email © 1999 - 2013 | Last Update: 29.11.2002