Bonjour,

J'ai télécharger ce petit script de compteur live

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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