Hallo,
ich habe ein Script geschrieben, dass als Shoutbox dienen soll, aber dank meines mangelnden PHP-Könnens funktioniert es nicht richtig:
Der else-Part wird auch ausgeführt, wenn die ersten zwei Bedingungen false sind.
Ich nehme an, dass die ersten zwei Bedingungen quasi unabhängig von der letzten Bedinung un der else-Anweisung sind, aber ich weiß nicht, wie ich das ändern kann.
Und array_unshift() bereitet mir auch Probleme:
$posts = file("shoutbox/posts.txt");
echo $posts . "<br>";
$posts = array_unshift($posts,$newpost);
echo $posts . "<br>";
$posts = implode('',$posts);
Das gibt dann folgendes aus:
Array
1
Warning: implode() [function.implode]: Bad arguments. in /home/www/web22/html/shoutbox2.php on line 44
Was macht array_unshift() mit meinem Array?
So sieht übrigens das Script als ganzes aus:
<?php
if(isset($submit)) {
echo "<span style="color:red">";
if($name=="Name" OR $name=="") { echo "Namen eingeben!<br>"; }
if($message=="Botschaft" OR $message=="") { echo "Botschaft eingeben!<br>"; }
$aip = getenv($REMOTE_ADDR);
$reip = fopen("shoutbox/oip.txt","r");
$oip = fgets($reip,255);
fclose($reip);
$reip = fopen("shoutbox/time.txt","r");
$ozeit = fgets($reip,11);
fclose($reip);
$azeit = time() - 15;
if($ip==$oip AND $ozeit>=$azeit) { echo "Du darfst nicht häufiger als alle 15 Sekunden schreiben.<br>"; }
else {
$name = htmlentities($name,ENT_QUOTES,"UTF-8");
$message = htmlentities($message,ENT_QUOTES,"UTF-8");
$jetzt = date("D, den j.n.Y um g:i:s");
$newpost = "<div class="blue" onMouseOver="red();beschreib(this.title);" onMouseOut="blue();mout();" title="geschrieben am ". $jetzt . "surfing ". $will . ""><b>" . $name . ": </b>" . $message . "<br><img src="res/shoutbox/line.gif" width="99%" height="3"></div>\n";
$posts = file("shoutbox/posts.txt");
$posts = array_unshift($posts,$newpost);
$posts = implode('',$posts);
$write = fopen("shoutbox/posts.txt","w");
fputs($write,$posts);
fclose($write);
$ip = fopen("shoutbox/oip.txt","w");
fputs($ip,getenv($REMOTE_ADDR));
fclose($ip);
$time = fopen("shoutbox/time.txt","w");
fputs($time,time());
fclose($time);
}
echo "</span>";
}
$posts = file("shoutbox/posts.txt");
for ($r=0; $r<6; $r++) {
echo $posts[$r];
}
?>
Online angucken, kann sich das wer will auf [http://sv.stealthlogin.de/shoutbox2.php]
Kann mir jemand helfen, vor allem das mit der else-Anweisung, wo ich ja offenbar prinzipiell was missverstanden hab, ist mir wichtig!
danke,
scorn