[Php Tutorial] Wir bauen uns ein Tagboard.

sToRmRiDeR

fühlt sich hier wohl
Willkommen zur großen Serie "Bauen mit Onkel sToRmRiDeR" :D
heute erstellen wir und ein kleines, einfaches Tagboard...was im grunde nix anderes als ein "mini"-gästebuch ist
ruhe auf den billigen plätzen und los gehts...

-------------------------------------
Vorrausetzungen
-------------------------------------
was brauchen wir um uns ans werk zu machen:

  • einen texteditor
  • ein klein wenig php-fähigen webspace
  • eine tasse kaffee
  • ne kippe und 5 min zeit

----------------------------------------
Das Ziel
----------------------------------------
am ende dieses tutorials wollen wir ein funktionierendes tagboard erstellt haben.

----------------------------------------
Los gehts
----------------------------------------

wir brauchen 4 dateien:
  • eine datei wo die einträge gespeichert werden = eintraege.txt
  • eine datei mit dem eingabeformular = tag_form.php
  • eine datei die die einträge aufruft und ausgibt = tagboard.php
  • eine datei die die formulardaten verarbeitet = tag_script.php

nehmt euren text-editor und erstellt euch diese dateien. (editor öffen->speichern unter->dateinamen eingeben.) achtet darauf das die entsprechenden endungen stimmen, ändert gegebenenfalls die endung txt in php.

---------------------------------------
Erste Datei: eintraege.txt
---------------------------------------

diese datei wird dazu verwendet um die einträge vom user zu speichern. daran ändern wir nichts, also eine leere textdatei mit dem richtigen dateinamen.

----------------------------------------
Zweite Datei: tag_form.php
----------------------------------------

das wird unser eingabeformular. wir erstellen uns mit einem beliebigen html-oder texteditor ein formular mit den einträgen die wir den user machen lassen wollen (zb email, homepage, text etc). wenn wir das haben, kopieren wir diesen code in unsere vorher erstellte leere "tag_form.php" die wir mit dem texteditor öffnen.

hier folgt ein beispiel code, ich habe die formularfelder in eine tabelle gelegt um sie leichter anpassen zu können, das ist aber nich nötig.

Code:


<form method="post" action="tag_script.php">
<br>
<table width="50%" border="0" cellspacing="5" cellpadding="5" align="center">
<tr>
<td>Unser Tagboard</td>
</tr>
</table>
<br>
<table width="50%" border="0" cellspacing="5" cellpadding="5" align="center">
<tr>
<td width="30%">Nick: </td>
<td width="70%">
<input type="text" name="nick">
</td>
</tr>
<tr>
<td width="30%">eMail: </td>
<td width="70%">
<input type="text" name="email">
</td>
</tr>
<tr>
<td width="30%">Hp: </td>
<td width="70%">
<input type="text" name="homepage">
</td>
</tr>
<tr>
<td width="30%">Wohnort: </td>
<td width="70%">
<input type="text" name="ort">
</td>
</tr>
<tr>
<td width="30%">Icq: </td>
<td width="70%">
<input type="text" name="icq">
</td>
</tr>
</table>
<table width="50%" border="0" cellspacing="5" cellpadding="5" align="center">
<tr>
<td> Eintrag: <br>
<textarea name="eintrag" cols="60"></textarea>
<br>
<input type="submit" name="Button" value="Absenden">
</td>
</tr>
</table>
<br>
<br>
</form>


erklärungen:

welche "werte" eingetragen werden dürfen/können/sollen liegt ganz bei euch..ihr könnt das beliebig erweitern oder kürzen.
bei meinen codebeispiel verwende ich folgende werte:

email,homepage,name,icq,wohnort,eintrag.

erweitert es nach belieben.

----------------------------------------
Dritte Datei: tag_script.php
----------------------------------------

diese datei verarbeitet die formulardaten und schreibt jene in unsere "eintraege.txt"

code:

<?
$daten="$eintrag<br>von <a href=mailto:$email>$nick</a> <a href=http://wwp.icq.com/scripts/online.dll?icq=$icq>$Icq</a>| $ort | <a href=$homepage>Homepage</a><br><br>";
$datenbank = "eintraege.txt";
$datei = fopen($datenbank,"a");
fwrite($datei, $daten);
?>

Danke für deinen Eintrag.
<a href="tagboard.php">Zurück zum Tagboard</a>


erklärungen:

$daten:
diese variable umfasst alle daten des formulars (in meinem beispiel: nick,hp,wohnort,icq,nick,email,eintrag)

das heißt, ihr müßt alle werte des formulares hier angeben. in unserem fall wäre das:

$daten="$nick $hp $wohnort $icq $email $eintrag";
im obigen beispielcode habe ich diese daten mit html-code formatiert.

$datenbank :
definiert die datei wo die daten gespeichert werden, achtet darauf das die angegebene datei existiert und sie "writeable" ist (chmod 666).

$datei = fopen($datenbank,"a");
diese php-funtkion öffnet unsere "einträge.txt" im writeable mode

fwrite($datei, $daten);
diese funktion schreibt die im fornular eingegeben daten in unsere "eintraege.txt"

----------------------------------
Vierte Datei: tagboard.php
----------------------------------
unsere letzte datei gibt die daten der "eintraege.txt" im browser aus.

code:

<?
$datenbank = "eintraege.txt";
$datei = fopen($datenbank,"r");
fpassthru($datei);
?>


erklärungen:

$datei = fopen($datenbank,"r");
fpassthru($datei);


diese funktionen öffnet unsere "eintraege.txt" im readable modus und gibt die darin enthaltenen daten aus.
------------------------------------------------------------------------------------
jetzt laden wir unsere vier erstellten dateien auf unseren webspace (achtet darauf das die datei "eintraege.txt" writeable ist) und rufen zum testen die tag_form.php auf. tragt irgendetwas ein und klickt auf den link "zurück zum tagboard".
habt ihr alles richtig gemacht, sollte euer eintrag nun angezeigt werden.

-----------------
Schlusswort:
-----------------

nun haben wir in kleines, funktionsfähiges tagboard erstellt. es sieht noch alles ein bisschen hässlich aus aber es funktioniert.
sollte dieses tutorial auf interesse stoßen bin ich gern bereit euch zu erklären wie man weitere funktionen einbaut, wie zb emotions, eine vernünftige ausgabeformatierung etc etc....dazu mehr auf meinem board.
 
hi,
gute anleitung.

ich bekomme nur leider keine ausgaben.

habe die .txt auf writeable gesetzt aber es wird nix eingetragen. die pfadangaben und dateinamen stimmen auch.

kann mir jemand helfen?

danke im vorraus fab
 
Hallo alle, hab das ausführende script etwas editiert. Nun werden die Eingabefelder von Nick, Email und Eintrag überprüft und falls nicht ausgefüllt wird "Bitte Formular vollständig Ausfüllen" mit dem Link zum Formular ausgegeben. Ich hab auch ncoh $_POST an Anfang hinzugefügt damit auch wirklich die Formular Inhalte (variablen) weitergegeben werden und dann in die TXT datei geschrieben werden. Anbei der neue Code von der tag_script.php Datei

--- Code von tag_script.php ---
<?
$nick=$_POST[nick];
$email=$_POST;
$homepage=$_POST[homepage];
$ort=$_POST[ort];
$icq=$_POST[icq];
$eintrag=$_POST[eintrag];

if ( (empty($nick))||(empty($email))||(empty($eintrag)) )
{
echo "<strong>Bitte Formular vollständig Ausfüllen</strong><br>";
echo "<strong><a href='tag_form.php'>Zurück zum Tagboard</a></strong>";
exit;
}
else
{
$daten="$eintrag<br>von <a href=mailto:$email>$nick</a> <a href=http://wwp.icq.com/scripts/online.dll?icq=$icq>$Icq</a>| $ort | <a href=$homepage>Homepage</a><br><br>";
$datenbank = "eintraege.txt";
$datei = fopen($datenbank,"a");
fwrite($datei, $daten);
}
?>

Danke für deinen Eintrag.
<a href="tagboard.php">Zurück zum Tagboard</a>
--- Code Ende ---


alles liebe

Christina
 
--- Code von tag_script.php ---
<?
$nick=$_POST[nick];
$email=$_POST;
$homepage=$_POST[homepage];
$ort=$_POST[ort];
$icq=$_POST[icq];
$eintrag=$_POST[eintrag];

if ( (empty($nick))||(empty($email))||(empty($eintrag)) )
{
echo "<strong>Bitte Formular vollständig Ausfüllen</strong><br>";
echo "<strong><a href='tag_form.php'>Zurück zum Tagboard</a></strong>";
exit;
}
else
{
$daten="$eintrag<br>von <a href=mailto:$email>$nick</a> <a href=http://wwp.icq.com/scripts/online.dll?icq=$icq>[B][COLOR="DarkOrange"]$icq[/COLOR][/B]</a>| $ort | <a href=$homepage>Homepage</a><br><br>";
$datenbank = "eintraege.txt";
$datei = fopen($datenbank,"a");
fwrite($datei, $daten);
}
?>

Danke für deinen Eintrag.
<a href="tagboard.php">Zurück zum Tagboard</a>
--- Code Ende ---


das steht bei christina falsch drinnen, darum hab ich mir erlaubt es auszubessern
 
Oben