Hallo Leute, ich habe ein textbasiertes Gästebuch geschrieben, es funktioniert auch alles ganz gut, bis auf eine Kleinigkeit.
Die Posts werden in einer Textdatei in dem Format:
Nick|Message|Datum
gespeichert.
Ich lese dann immer eine Zeile ein, explode die anhand der | in ein array.
Nun ist natürlich das Problem, wenn der User in seinem Nick oder in seiner Message ein | hat funktioniert das ganze nicht mehr ordentlich.
Bei mir ist es nun so, dass die | die vom User eingegeben werden mit str_replace zu <!strich!> geändert werden, das klappt auch alles wunderbar.
Nur das ändern von <!strich!> zu | bereitet Probleme, hier der entsrpechende Code:
PHP-Code:
error_reporting(E_ALL)
$news = @file("eintrag.txt");
$start = (count($news) - 1) - $ppp * ($page - 1);
$stop = (count($news) - 1) - $ppp * ($page - 1) - $ppp + 1;
if ($start > (count($news) - 1))
{
$start = count($news) - 1;
}
if ($stop < 0)
{
$stop = 0;
}
if (!$news)
{
$max = 0;
}
else
{
$max = count($news);
for ($a = $start; $a >= $stop; $a--)
{
$this_news = explode("|", $news[$a]);
$this_news[0] = str_replace( "<!strich!>","|",$this_news[0] );
$this_news[1] = str_replace( "<!strich!>","|", $this_news[1]);
?>
<center>
<table class="Tabelle">
<tr class="Tabellenkopf">
<td align="center"><?=$this_news[0];?></td>
</tr>
<tr class="Tabellenkopf" align="center">
<td align="center" class="Tabelleninhalt"><?=$this_news[1];?></td>
</tr>
<tr class="Tabellenkopf">
<td align="center">Datum: <?=$this_news[2];?></td>
</tr>
</table>
</center>
<?
}
}
if ($max == 0)
{
$pages = 1;
}
else
{
$pages = intval(($max - 1) / $ppp) + 1;
}
?>
<p align='center'>
<?
if ($page > 1)
{
?>
[url='<?=$PHP_SELF?>?page=1']|<[/url]
[url='<?=$PHP_SELF?>?page=<?=($page - 1)?>']<[/url]
<?
}
for ($i = 1; $i <= $pages; $i++)
{
if ($i == $page)
{
?>
<?=$i?>
<?
}
else
{
?>
[url='<?=$PHP_SELF?>?page=<?=$i?>']<?=$i?>[/url]
<?
}
}
if($page < $pages)
{
?>
[url='<?=$PHP_SELF?>?page=<?=($page + 1)?>']>[/url]
[url='<?=$PHP_SELF?>?page=<?=$pages?>']>|[/url]
<?
}
?>
Wo ist der verdammte Fehler?
es kommt keine Fehlermeldung es wird einfach nur nicht ersetzt...