Probleme avec mon petit chat ... (dialogue en direct)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme avec mon petit chat ... (dialogue en direct)

Probleme avec mon petit chat ... (dialogue en direct)

par fabien_14 » 20 oct. 2006, 23:20

bonjour,

J'ai un petit chat en fichier texte qui me permet de papoter avec mes inscrit

cepenant dans le chat jai un probleme j'ai limiter la taille du fichier a 1000 octet qui se sommme chat.dat et mes ligne inserer sont de cette forme :

Code : Tout sélectionner

$lib="<b>" . $time . " - " . $pseudo . "</b> dit : <br /><div style=\"margin-left:50px\">" . $_POST[text] . "</div>\n{*}";
cependant je voudrais pouvoir faire en sorte que seule 10 ligne soit inscrite dans le fichier texte et que quand yen a 1 de plus la plus ancienne des ligne soit supprimer ... avec une limitation a 150 caractere a chaque envoie comme j'ai actuellement :)

Car actullement si qlq inscrit des ligne le troncage se fait defois la ou il se faut pas et sa met des chose comme ceci dans le fichier chat.dat

Code : Tout sélectionner

<b>23:16:04 - pseudotest</b> dit : <br /><div style="margin-left:50px">le texte du chat bla bla bla </div> {*}<b>23:11:11 - pseudotest</b> dit : <br /><div style="margin-left:50px">le texte du chat bla bla bla</div> {*}<b>23:07:37 - pseudotest</b> dit : <br /><div style="margin-left:50px">le texte du chat bla bla bla</div> {*}<b>23:07:35 - pseudotest[ICI TEXTE TRONQUEZ DONC PAS BON!!!]
Donc ici a la dernire ligne vous voyer bien que le troncage s'est fait la ou il fallai pas ... donc c ce probleme surtou qui me trcasse je voudrai avoir toujours en sorte que les message soit tous entier et que le fichier chat.dat ne fasse jamais plus de 1000 ko (afin de ne pas avoir un fichier de 500 MO au bon de 2 an ;) )



Voila mes code

le script avec le formulaire :

Code : Tout sélectionner

<?php function fChat ($a) { ?> <center> <iframe src="chat.php?act=1" width="96%" height="500" name="chat" SCROLLING="no" border="0" frameborder="0"></iframe></center> <? $temp= "tmp/"; $fchat=$temp . "chat.dat"; $fcom=$temp . "auto.dat"; $pseudo=$a; $capa="1564"; @chmod($fchat, 0777); @chmod($fcom, 0777); $fp = @fopen($fcom,'rt'); if ($fp) $auto=@fgets($fp, $capa); @fclose($fp); ?> <script> function clearmsg(){ document.post.text.value=""; document.post.charsleft.value="150"; document.post.text.focus(); } function ShowCharsLeft(post) { maxLength = 150 if (post.text.value.length > maxLength) { post.text.value = post.text.value.substring(0,maxLength) charleft = 0 } else { charleft = maxLength - post.text.value.length } post.charsleft.value=charleft } </script> <form method="post" target="chat" name="chat" action="chat.php?act=1#sol"> <?php if ($auto=="1") { ?> <input type="text" name="charsleft" style="text-align: center;" value="150" size="3" readonly> <input type="hidden" size="15" value="<?php print $a; ?>" name="pseudo" /> <input type="text" size="80" name="text" onClick="text.value=''" onKeyUp="ShowCharsLeft(this.form);" wrap="physical" /> <input type="submit" value="Ajouter" name="b" /> <?php } else print "Dialogue interdit"; ?> <br /> </form> <? } ?>
et le fichier de la fonction chat

Code : Tout sélectionner

<body id="bg2"> <?php define('C_ABSOLU', '/le chemin en absolu'); $temp=C_ABSOLU . "tmp/"; $fchat=$temp . "chat.dat"; $fcom=$temp . "auto.dat"; $nompage="./"; $pseudo=$_POST[pseudo]; $capa="1024"; $refresh="180"; @chmod($fchat, 0777); @chmod($fcom, 0777); $fp = @fopen($fcom,'rt'); if ($fp) $auto=@fgets($fp, $capa); @fclose($fp); if($_POST[b] && $_POST[text] && $auto=="1") { $_POST[text]=str_replace("<","<",$_POST[text]); $_POST[text]=str_replace(">",">",$_POST[text]); $fp = @fopen($fcom,'rt'); if ($fp) $autoa=@fgets($fp, $capa); @fclose($fp); if($autoa=="1") { $fp = @fopen($fchat,"r"); $OldData = @fread($fp,$capa); @fclose($fp); } $time = @date("H:i:s"); $lib="<b>" . $time . " - " . $pseudo . "</b> dit : <br /><div style=\"margin-left:50px\">" . $_POST[text] . "</div>\n{*}"; $new="$lib$OldData"; $fd = @fopen($fchat,'w+'); @fwrite($fd, $new); @fclose($fd); } if($_GET[act]=="1") { print "<META HTTP-EQUIV=\"Refresh\" content=\"" . $refresh. ";\">\n"; $fp = @fopen($fchat,"r"); $Data = @fread($fp, $capa); @fclose($fp); $Data = @stripslashes($Data); $flip=explode("{*}",$Data); $nbflip=count($flip); $nbbflip=$nbflip-15; $a=array_reverse($flip); for($i=$nbbflip; $i<=$nbflip; $i++) { print_r($a[$i]); } exit; } ?>