par
soak » 26 oct. 2007, 14:45
Bonjour à tous,
Je viens vous soumettre un petit probleme :
une boucle que je n'arrive pas à resoudre. Apparament je ne dois pas utiliser la bonne boucle ou il doit manquer quelquechose dans celle-ci.
mon code :
<?php
//si le fichier exist l'ouvrir en ecriture pour ecrire a la suite sinon le creer
if (file_exists("temp.txt")) {
$fp = fopen("temp.txt","a");
} else {
touch("temp.txt");
}
$fichier_temp = file("temp.txt");
// recuperation de la date au format 220719801141 Jour Mois Annees heures min
$today = date('dmYGi');
// recuperation de l'adresse IP
$client = $_SERVER["REMOTE_ADDR"];
//affichage des 2 var
//echo "$today $client";
//var regroupant nos deux var (client et date) avec espace
$var_tot = $today." ".$client."\n";
//ecriture dans fichier
fputs($fp,$var_tot);
fclose($fp);
//lecture du fichier
$fp = fopen("temp.txt", 'r');
$total = count($fp);
while (!feof($fp)) {
$rec = fgets($fp,50);
$liste = explode (" ",$rec);
$time = $liste[0];
$ip = $liste[1];
echo "date: $time ip: $ip<br />";
}
//fermerture fichier
fclose($fp);
?>
Et pour etre plus clair je vous affiche la boucle qui me pose probleme :
while (!feof($fp)) {
$rec = fgets($fp,50);
$liste = explode (" ",$rec);
$time = $liste[0];
$ip = $liste[1];
echo "date: $time ip: $ip<br />";
}
je vous joinds egalement l'affichage avec l'erreur :
Code : Tout sélectionner
date: 261020071526 ip: 127.0.0.1
date: 261020071526 ip: 127.0.0.1
date: 261020071526 ip: 127.0.0.1
date: 261020071528 ip: 127.0.0.1
date: 261020071528 ip: 127.0.0.1
date: 261020071529 ip: 127.0.0.1
date: 261020071529 ip: 127.0.0.1
date: 261020071531 ip: 127.0.0.1
Notice: Undefined offset: 1 in f:\web_site\lab\index.php on line 36
date: ip:
Comme on peut le voir la boucle fait bien son travail, les donnees sont bien recuperees et affichees comme souhaitees.
Cependant le petit problème est le notice à la fin. Pour moi, en fin ou en début de boucle les variables ip et time sont vide.
J'espere que tout cela est clair et pas trop brouillon.
En vous remerciant d'avance
Ps: ce script n'est pas finit, celui-ci me servira pour faire un compteur live.
++
Soak