hallo... ich habe folgendes script als shortbox auf meiner seite liegen:
sprich: man gibt name und nachricht ein und beim absenden wird es in eine txt geschrieben... diese wird bei der seite halt wieder ausgelesen...
PROBLEM:
ich muss ganz oben folgendes drin haben: $chat_lenght = 50;
das script hält somit für 50 zeilen platz auf der seite frei...
alles was drüber fällt wird entweder nicht mehr ausgelesen/eingefügt, oder gar gelöscht - das hab ich noch gar nicht genau getestet...
weniger als diese 50 zeilen möchte ich jedoch auch nicht, weil man sonst zu wenig vorhergeschriebenes sehen kann...
dadurch das das script 50 zeilen für sich freihält, wird die tabelle größer als es die seite ist... somit muss man für ältere nachrichten nach unten scrollen, wodurch die menüleiste die im oberen raum der seite ist, nicht mehr sichtbar ist...
ich würde es gerne so haben, das die tabelle zwar gerne 50 oder meinetwegen auch 100 zeilen lang ist, jedoch in einem extra kästchen welches nur etwa 400 pixel hoch ist, sodass man nur in diesem kästchen scrollen muss - nicht die ganze seite...
oder sowas wie: wenn 30 zeilen vorbei, dann plättere um auf seite 2... halt mit seitenfunktion... denk das würde aber schwieriger sein als die erste lösung^^
hoffe ich habs nicht zu dumm erklärt was ich haben will^^
kann mir da wer aushelfen?
Code:
<? $person = $_POST['person']; $message = $_POST['message']; $person = str_replace ("\n"," ", $person); $person = str_replace ("<", " ", $person); $person = str_replace (">", " ", $person); $person = stripslashes ($person); ?> <? $chat_file_ok = "msg.txt"; $chat_lenght = 50; $max_single_msg_lenght = 1024; $max_file_size = $chat_lenght * $max_single_msg_lenght; $file_size= filesize($chat_file_ok); if ($file_size > $max_file_size) { $lines = file($chat_file_ok); $a = count($lines); $u = $a - $chat_lenght; for($i = $a; $i >= $u ;$i--){ $msg_old = $lines[$i] . $msg_old; } $deleted = unlink($chat_file_ok); $fp = fopen($chat_file_ok, "a+"); $fw = fwrite($fp, $msg_old); fclose($fp); } $msg = str_replace ("\n"," ", $message); $msg = str_replace ("\n"," ", $message); $msg = str_replace ("<", " ", $msg); $msg = str_replace (">", " ", $msg); $msg = stripslashes ($msg); if ($msg != ""){ $fp = fopen($chat_file_ok, "a+"); $fw = fwrite($fp, "\n<b>$person :</b><span class=text2> $msg<br></span>"); fclose($fp); } $lines = file($chat_file_ok); $a = count($lines); $u = $a - $chat_lenght; for($i = $a; $i >= $u ;$i--){ echo $lines[$i] . "<br>"; } ?>
PROBLEM:
ich muss ganz oben folgendes drin haben: $chat_lenght = 50;
das script hält somit für 50 zeilen platz auf der seite frei...
alles was drüber fällt wird entweder nicht mehr ausgelesen/eingefügt, oder gar gelöscht - das hab ich noch gar nicht genau getestet...
weniger als diese 50 zeilen möchte ich jedoch auch nicht, weil man sonst zu wenig vorhergeschriebenes sehen kann...
dadurch das das script 50 zeilen für sich freihält, wird die tabelle größer als es die seite ist... somit muss man für ältere nachrichten nach unten scrollen, wodurch die menüleiste die im oberen raum der seite ist, nicht mehr sichtbar ist...
ich würde es gerne so haben, das die tabelle zwar gerne 50 oder meinetwegen auch 100 zeilen lang ist, jedoch in einem extra kästchen welches nur etwa 400 pixel hoch ist, sodass man nur in diesem kästchen scrollen muss - nicht die ganze seite...
oder sowas wie: wenn 30 zeilen vorbei, dann plättere um auf seite 2... halt mit seitenfunktion... denk das würde aber schwieriger sein als die erste lösung^^
hoffe ich habs nicht zu dumm erklärt was ich haben will^^
kann mir da wer aushelfen?
Kommentar