Script Compteur en ligne - Parse error
Bonjour,
J'ai télécharger ce petit script de compteur live
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| <?php
$timeout=300; /* 5 minutes */
$script_dir="";
include($script_dir."userdata.php");
$timestamp=time();
$included="false";
for($i=0;$i<count($cur_users);$i++)
{
$u_arr=explode("|",$cur_users[$i],strlen($cur_users[$i]));
if(($timestamp-$u_arr[1]) > $timeout ) $cur_users[$i]="";
if($u_arr[0]==$REMOTE_ADDR)$included="true";
}
if($included=="false")$cur_users[$i]=$REMOTE_ADDR."|".$timestamp;
$fp=fopen($script_dir."userdata.php","w");
fwrite($fp,"<?php \r\n \$cur_users=array(",strlen("<?php \r\n \$cur_users=array("));
$users_online=0;
for($i=0;$i<count($cur_users);$i++)
{
if($cur_users[$i]!="") {
fwrite($fp,'"'.$cur_users[$i].'"',strlen('"'.$cur_users[$i].'"'));
if($i<count($cur_users)-1)fwrite($fp,",",strlen(","));
$users_online++;
}
}
if($users_online==0)$users_online=1;
fwrite($fp,") ?>",strlen(") \r\n?>"));
fclose($fp);
echo "$users_online";
?> |
Il marche très bien sauf que parfois j'ai des parse error dans le fichier userdata.php qui bloquent donc tout mon site. Lorsque je regarde le fichier userdata.php je remarque qu'en fait il arrive parfois qu'à la fin de mon fichier il ne se termine pas bien et j'ai ceci
Code:
1 2 3 4 5
| ....,"192.168.0.1|1257847645")"192.168.0.2|1257847646") ?>
au lieu de
....,"192.168.0.1|1257847645","192.168.0.2|1257847646") ?> |
J'ai essayé de modifier le code mais j'ai pas réussi à faire en sorte d'éviter ce parse error. L'idée c'est donc de mettre un test pour dire que si dans userdata.php j'ai un parse error, qu'il m'affiche indisponible au lieu du beug.
Est ce que cela est possible en php si oui, quelqu'un peut-il m'orienter ? Merci