BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- PHP Gästebuch ohne Datenbank (http://www.black-board.net/thread.php?threadid=16114)


Geschrieben von ckcstriker am 23.02.2004 um 21:07:

  PHP Gästebuch ohne Datenbank

ich hab mich in letzter zeit ziemlich intensiv mit PHP beschäftigt!
in den theoretischen teil hab ich mich auch recht gut eingearbeitet
aber bei der praktischen umsetzung hapert es noch.
ich wollte jetzt aus einem buch die aufgabe lösen
ein gästebuch zu schreiben, mit einer seite um einen eintrag zu schreiben,
einer bestätigung, dass der eintrag erfolgreich war, und einer seite auf
der die beiträge angezeigt werden. die ganzen beiträge sollen in einer
datei gespeichert werden. also darf keine datenbank benutzt werden.
doch ich schaffe es einfach nicht das ganze in die praxis umzusetzen und
das prinzip zu verstehen, wie das ganze funktioniert.
vielleicht kann mir da mal einer helfen.

ich hab mir das bisher so vorgestellt:

EINTRAGSFORMULAR --> Eintrag wird in eine Tabell eingefügt und dann
wird die vollständige Tabelle an die Textdatei angehängt (würde heißen
pro eintrag eine tabelle) ---> EINTRAG ERFOLGREICH SEITE --->
GÄSTEBUCHANZEIGE



Geschrieben von Mr.Stevens am 24.02.2004 um 11:05:

 

Na ja, du bastelst dir wie gesagt eine HTML Datei, packst ein Formular für die Eingabe der gewünschten Daten (Name, eMail, Text) rein und übergibst das per method=GET oder method=POST, je nachdem was dir lieber ist an eine PHP Datei.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
<form action="guestbook.php" method="GET">
     <table class="normal" border="0" cellpadding="3" cellspacing="0">
        <tr>
           <td><b>Name:</b></td>
           <td><input type="text" name="name" value="" size="40" maxlength="40" /></td>
        </tr>
        <tr>
           <td><b>eMail:</b></td>
           <td><input type="text" name="email" value="" size="40" maxlength="40" /></td>
        </tr>
        <tr>
           <td colspan="2"><br /><textarea name="text" cols="48" rows="8"></textarea></td>
        </tr>
        <tr>
           <td colspan="2"><br /><input type="submit" name="entry" value="Eintragen" /></td>
           <td>&nbsp;</td>
        </tr>
   </table>
</form>



Der PHP Datei musst du halt dann klarmachen, dass sie eine Textdatei öffnen und die übergebenen Werte schreiben soll.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
<?
{
  $fp = fopen("guestbook.txt","a+");
  fputs ($fp,$name." ".$email."<br><hr width=400 align=left>");
  fputs ($fp,$text."\n");
  fputs ($fp,"<hr width=400 align=left>");
  fputs ($fp,"<br><br>");
  fclose($fp);
  $msg = 'Dein Eintrag wurde gespeichert!<br>';
}

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

while (!feof($fp))
{
  echo nl2br(fgets($fp));
}
fclose($fp);

echo $msg;

?>


Allerdings hat der Code hier den Nachteil, dass der Eintrag hier immer an das Ende der Textdatei gesetzt wird und das soll ja bei nem Gästebuch eigentlich nicht so sein.
Man müsste also die "Datenbank", in deinem Fall ein TXT File zuerst öffnen, dann auslesen, den neuen Eintrag schreiben und das Ausgelesene wieder anhängen. Dann würds passen. Wie man das allerdings anstellt weis ich noch nicht, da ich mich selber erst seit ein paar tagen mit PHP beschäftige.

Also werter Anfängerkollege, viel Erfolg



Geschrieben von phlox81 am 24.02.2004 um 12:27:

 

schaut mal bei www.php.net unter
fgets, fputs, fread, fwrite. (einfach and die URL mit einem / anhängen)
Dort hat es auch jeweils Codebeispiele.

Devil



Geschrieben von LX am 24.02.2004 um 13:52:

Achtung

Die einzelnen Einträge könntest du in Arrays ablegen, und diese dann mittels serialize() umwandeln, um sie in einer Textdatei ablegen zu können. Beim Auslesen erfolgt natürlich die Rückumwandlung analog mit unserialize().


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH