cocaxx
19-05-2002, 07:48
Hi!
Das Problem:
Ich hab ein kleines Gästebuch geschrieben, dass funzt auch.....d.h. fast.
So werden die Dateien ausgelesen:
function gbuch()
{
$datei = "./data/gbuch.inc";
$trennzeichen = "|:_.-._:|";
if(file_exists($datei))
{
$zeile = file($datei);
for($i=0;$i<sizeof($zeile);$i++)
{
if(($zeile[$i] != "")||($zeile[$i] != "\n"))
{
$eintrag = explode($trennzeichen,$zeile[$i]);
switch($eintrag[2]) {
case 1: $wertung='<img src=./img/gbuch/1.png border=0>';
case 2: $wertung='<img src=./img/gbuch/2.png border=0>';
case 3: $wertung='<img src=./img/gbuch/3.png border=0>';
case 4: $wertung='<img src=./img/gbuch/4.png border=0>';
case 5: $wertung='<img src=./img/gbuch/5.png border=0>';
}
echo "
<table border=0 cellpadding=2 cellspacing=0 width=800>
<tr><td height=15> </td></tr>
<tr><td class=\"header_3\" width=\"800\" height=\"22\" colspan=2><B><font color=\"#ffffff\">$eintrag[0]</font></B></td></tr>
<tr><td class=text_header_box colspan=2>Eintrag von $eintrag[1], $eintrag[2]</td></tr>
<tr><td class=news_text_box width=105>$wertung</td><td>$eintrag[4]</td></tr>
<tr><td class=text_header_box colspan=2><a href=$PHP_SELF?aktion=gbucheintrag>Neuer Eintrag</a></td></tr>
</table>
";
}
}
}
}
Mit dem Case is nur ne Fallunterscheidung um ein Wertungsbild anzuzueigen.
So werden die Dateien geschrieben:
<?php
echo "Danke für ihren Eintrag!";
$trennzeichen = "|:_.-._:|";
$datei = "./data/gbuch.inc";
$neue_zeile=nl2br(htmlentities("\n" . $uschrift . $trennzeichen . $name . $trennzeichen . $mail . $trennzeichen . $wertung . $trennzeichen . $text));
$zeile=file("$datei");
$zeile[sizeof($zeile)] = $neue_zeile;
speichern("$datei",implode("$trennzeichen",$zeile));
function speichern($datei, $eintragen)
{
$fp = fopen($datei, "w");
fwrite($fp, $eintragen);
fclose($fp);
}
So. Das geht auch. Doch wenn einer mit Zeilenumbrüchen schreibt, z.B. folgendes:
<Bsp>
Hallo
Gute Seite
</Bsp>
Dann hab ich 3 Einträge, weil der eingegebene Text nicht in eine Zeile geschoben wird.
Verstanden? Kann mir jmnd weiterhelfen?
mfg
cocaxx
Das Problem:
Ich hab ein kleines Gästebuch geschrieben, dass funzt auch.....d.h. fast.
So werden die Dateien ausgelesen:
function gbuch()
{
$datei = "./data/gbuch.inc";
$trennzeichen = "|:_.-._:|";
if(file_exists($datei))
{
$zeile = file($datei);
for($i=0;$i<sizeof($zeile);$i++)
{
if(($zeile[$i] != "")||($zeile[$i] != "\n"))
{
$eintrag = explode($trennzeichen,$zeile[$i]);
switch($eintrag[2]) {
case 1: $wertung='<img src=./img/gbuch/1.png border=0>';
case 2: $wertung='<img src=./img/gbuch/2.png border=0>';
case 3: $wertung='<img src=./img/gbuch/3.png border=0>';
case 4: $wertung='<img src=./img/gbuch/4.png border=0>';
case 5: $wertung='<img src=./img/gbuch/5.png border=0>';
}
echo "
<table border=0 cellpadding=2 cellspacing=0 width=800>
<tr><td height=15> </td></tr>
<tr><td class=\"header_3\" width=\"800\" height=\"22\" colspan=2><B><font color=\"#ffffff\">$eintrag[0]</font></B></td></tr>
<tr><td class=text_header_box colspan=2>Eintrag von $eintrag[1], $eintrag[2]</td></tr>
<tr><td class=news_text_box width=105>$wertung</td><td>$eintrag[4]</td></tr>
<tr><td class=text_header_box colspan=2><a href=$PHP_SELF?aktion=gbucheintrag>Neuer Eintrag</a></td></tr>
</table>
";
}
}
}
}
Mit dem Case is nur ne Fallunterscheidung um ein Wertungsbild anzuzueigen.
So werden die Dateien geschrieben:
<?php
echo "Danke für ihren Eintrag!";
$trennzeichen = "|:_.-._:|";
$datei = "./data/gbuch.inc";
$neue_zeile=nl2br(htmlentities("\n" . $uschrift . $trennzeichen . $name . $trennzeichen . $mail . $trennzeichen . $wertung . $trennzeichen . $text));
$zeile=file("$datei");
$zeile[sizeof($zeile)] = $neue_zeile;
speichern("$datei",implode("$trennzeichen",$zeile));
function speichern($datei, $eintragen)
{
$fp = fopen($datei, "w");
fwrite($fp, $eintragen);
fclose($fp);
}
So. Das geht auch. Doch wenn einer mit Zeilenumbrüchen schreibt, z.B. folgendes:
<Bsp>
Hallo
Gute Seite
</Bsp>
Dann hab ich 3 Einträge, weil der eingegebene Text nicht in eine Zeile geschoben wird.
Verstanden? Kann mir jmnd weiterhelfen?
mfg
cocaxx