Problem mit Gästebuch

Hi :bp: Community.
Ich habe endlich ein GB Script gefunden, welches auch richtig funktioniert… zumindest [b]fast[b].

Und zwar zeigt sich das Problem, beim Absenden eines Posts.
So lange ich nur eine Zeile schreibe, klappt alles Perfekt.
Aber wenn ich mehr als eine Zeile schreibe, dann wird jede einzelne Zeile ein extra Eintrag. Und zwar so:

Name
Zeile 1

Zeile 2
Nichts

Zeile 3
Nichts

Zeile 4
Nichts

Hier der Quelltext:

// [...]
$data=file($base);
$c=count($data);
if (!isset($page)) { $page=0; }
//Navigation (oben)
$col=$c/15;
echo "<center>";
if ($c<15){ echo ""; }
else {
echo "Homepage: ";
for($i=0;$i<$col;$i++)
{
if(($i)!=$page)echo "<a href=gb.php?page=$i>".($i+1)."</a> ";
else
echo ($i+1)." ";
}
}
echo "

";
for ($i=$page*15;$i<$page*15+15;$i++)
{
if($i>$c-1)break;
list($name,$mail,$url,$date,$city,$text)=split("::","$data[$i]");
//email
if ($mail !== ""){ $mail = "<a href=mailto:".$mail.">Email</a>"; } else { $mail = "e-mail"; }
//Hp
if ($url !== ""){ $url = "<a href=\"".$url."\">Homepage</a>"; } else { $url = "www"; }
//Staadt
if ($city !== ""){ $city = "aus ".$city.""; } else { $city = "Keine Angabe"; }
?>
<center>
<table border="0" cellpadding="0" cellspacing="0" width="640">
<tr>
<td><b>[ <? echo $name; ?> ]</b> - <? echo $date; ?> - 

<? echo $url; ?> - <? echo $mail; ?> - <? echo $city; ?><br>

<? echo $text; ?><br></td>
<hr noshade color="#000000" size="1">
</tr>
</table>
</center>

<?
}
//Navigation (unten)
$col=$c/15;
echo "<center>";
if ($c<15){ echo ""; }
else {
echo "Homepage: ";
for($i=0;$i<$col;$i++)
{
if(($i)!=$page)echo "<a href=gb.php?page=$i>".($i+1)."</a> ";
else
echo ($i+1)." ";
}
}
?> 

Sry, ich kenn mich noch nich so gut mit PHP aus…

Könnt ihr mir sagen woran das liegt, und wie es zu lösen ist?

Der Fehler passiert nicht beim Auslesen der Datei, sondern schon beim schreiben.
Vor dem speichern müssen die Newlines in
umgewandelt werden.
Die Funktion dazu heißt nl2br().

Danke für deine Antwort.
Nur, das klappt nicht.
Hier der Link zum GB: gamez64.net/p=gb
Schreibt mal einen Eintrag mit mehreren Zeilen… ;(

Ich hab das so gemacht:

$name=$_POST["name"];
$mail=$_POST["mail"];
$url=$_POST["url"];
$city=$_POST["city"];
$text=nl2br($_POST["text"]);
$date = date("d.m.y");

Hier der gesamte Quelltext:

<?
########################################
#
#speichert es als  "gb.php".
#dazu braucht ihr auch: gb.txt.
#Design könnt ihr selber machen wie ihr wollt.
#Alles anderes .lasst lieber wie es ist
#naja wenn ihr bessere Vorschläge habt dann macht es
#Author: Korol25
#Homepage: [url]http://www.hp-fun.de/portal[/url]
#Datum: Januar (2005)
########################################


//File txt
$base = "gb.txt";
//base $general
$general = file($base);
//form des Scripts
//ihr könnt es Beliebig anpassen
?>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<center>
<table border="0" cellpadding="3" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" id="AutoNumber1">
<tr>
<td>
<form method="POST" action="?p=gb&act=add"><p align="right">
Dein Name:</p>
</td>
<td><input type="text" name="name" size="30" maxlength="30"></td>
</tr>
<tr>
<td>
<p align="right"><span lang="en-us">Deine Email:</span></td>
<td><input type="text" name="mail" size="30" maxlength="30"></td>
</tr>
<tr>
<td>
<p align="right">Deine Homepage:</td>
<td><input type="text" name="url" size="30" maxlength="40"></td>
</tr>
<tr>
<td>
<p align="right">Dein Wohnort:</td>
<td><input type="text" name="city" size="30" maxlength="30"></td>
</tr>
<tr>
<td valign="top">
<p align="right">Dein Eintrag</td>
<td><p align="left">
<textarea rows="5" name="text" cols="30"></textarea></p>
</td>
</tr>
<tr>
<td colspan="2">
<p align="center">
<input type="submit" value="Absenden" name="B1" style="float: right"></form></td>
</tr>
</table>
</center>
<?
//add
if ($act == "add"){
//Daten
$name=$_POST["name"];
$mail=$_POST["mail"];
$url=$_POST["url"];
$city=$_POST["city"];
$text=nl2br($_POST["text"]);
$date = date("d.m.y");
//Funktion
function replace($string){

$string = str_replace("::", "::", $string);
$string = ereg_replace(" +"," ",$string);
$string = trim($string);
$string = stripslashes($string);
$string = str_replace("\n", "
", $string);
$string = str_replace("\r", "", $string);
return $string;
}
//Daten
$name = replace($name);
$mail = replace($mail);
$url = replace($url);
$city = replace($city);
$text = replace($text);
//max buchstaben
$arr=explode(" ",$text);
foreach($arr as $word)
if(($size=strLen($word))>25){
echo "<center>Ein Wort hat mehr als 25 buchstaben.</center>";
//was ist wenn einer mehr als 25 Buchstaben hat
$error = 1;
}
//hat der Besucher alles angegeben ?
if ($name == ""){
echo "<center>Schreibt bitte ihr nick rein</center>";
$error = 1;
}
if ($text == ""){
echo "<center>der TEXT fehlt</center>";
$error = 1;
}
//wenn alles in Ordnung ist
if (!isset($error)){
//
$msg = "$name::$mail::$url::$date::$city::$text::";
$lines = file($base);
//
//
$fp = fopen($base, "w");
//die ersten Daten
fwrite($fp, "$msg\n");
//
for ($i = 0; $i < count($lines); $i++)
{
@fwrite($fp, $lines[$i]);
}
fclose($fp);
echo "<center>Danke für deinen Eintrag.</center>";
}
}
//
$data=file($base);
$c=count($data);
if (!isset($page)) { $page=0; }
//Navigation (oben)
$col=$c/15;
echo "<center>";
if ($c<15){ echo ""; }
else {
echo "Homepage: ";
for($i=0;$i<$col;$i++)
{
if(($i)!=$page)echo "<a href=gb.php?page=$i>".($i+1)."</a> ";
else
echo ($i+1)." ";
}
}
echo "

";
for ($i=$page*15;$i<$page*15+15;$i++)
{
if($i>$c-1)break;
list($name,$mail,$url,$date,$city,$text)=split("::","$data[$i]");
//email
if ($mail !== ""){ $mail = "<a href=mailto:".$mail.">Email</a>"; } else { $mail = "e-mail"; }
//Hp
if ($url !== ""){ $url = "<a href=\"".$url."\">Homepage</a>"; } else { $url = "www"; }
//Staadt
if ($city !== ""){ $city = "aus ".$city.""; } else { $city = "Keine Angabe"; }
?>
<center>
<table border="0" cellpadding="0" cellspacing="0" width="640">
<tr>
<td><b>[ <? echo $name; ?> ]</b> - <? echo $date; ?> - 

<? echo $url; ?> - <? echo $mail; ?> - <? echo $city; ?><br>

<? echo $text; ?><br></td>
<hr noshade color="#000000" size="1">
</tr>
</table>
</center>

<?
}
//Navigation (unten)
$col=$c/15;
echo "<center>";
if ($c<15){ echo ""; }
else {
echo "Homepage: ";
for($i=0;$i<$col;$i++)
{
if(($i)!=$page)echo "<a href=gb.php?page=$i>".($i+1)."</a> ";
else
echo ($i+1)." ";
}
}
?> 

Sry für Doublepost, aber

HELP! isch dringend. ;/

google.de !coffee

wenn dann gidf.de/

Danke auch für die Hilfe. >.<
Soll ich den Quelltext ins Suchfeld tun oder was?
Auf selfphp stand da, dass ich die nl2br Funktion so nutzen soll, wie ich sie genutzt hab.

Moin,

a) mal im Ernst: grobe 200 Zeilen Quellcode, der total unübersichtlich zu lesen ist und manchmal habe ich schon beim überfliegen so etwas gesehen, wie

//
$variable [...]

b) Du erwartest ernsthaft noch eine halbe Stunde vor Mitternacht eine Antwort auf eine Frage, die du vor einer halben Stunde gestellt? Nee, sorry echt nicht. Da haben michi und wccw schon recht …

c) Da ich ein netter Mensch, bin schenke ich dir einen Link. Und zwar diesen hier. Das ist ein Tutorial, wo Schritt für Schritt erklärt wird, wie man ein Gästebuch auf Basis einer Textdatei programmiert.

MfG
myPages

Ok, tut mir leid.
Ich hatte einfach keine Ahnung, was da falsch ist, da ich in PHP noch nicht so bewandert bin.
Ich habs jetzt mit str_replace gelöst. Ich werd mir das Tut trotzdem mal anschaun.