Message d'erreur...comprend pas d'où ça vient !

Petit nouveau ! | 1 Messages

16 oct. 2006, 23:55

Bjr tout le monde !
Je crois que presque tout est dit dans le titre...en fait j'ai sur une page un code php placé avant mon doctype qui génère une fois sur deux une erreur qui est la suivante :

Notice: Undefined offset: 2 in d:\madinina webradio\website\zik\zik by jumpy972\compteur-live.php on line 6

Le code qui génère cette erreur est le suivant :
<?php
include ("compteur-live.php");
?>
voici le code de la page compteur-live.php :
$compteur_live = file("compteur-live.txt");
$premiere_ligne_a_garder=-2;

do {
	$premiere_ligne_a_garder=$premiere_ligne_a_garder+2;
} while((date('U', strtotime('-300 seconds')) > $compteur_live[$premiere_ligne_a_garder]) && ($premiere_ligne_a_garder < count($compteur_live)));

if(isset($_SERVER["REMOTE_ADDR"])) {
	$ip_en_cours = $_SERVER["REMOTE_ADDR"];
} else { // sinon
	$ip_en_cours = "Non identifiable";
}

$compteur = "";
if($premiere_ligne_a_garder < count($compteur_live)) {
	for($i=$premiere_ligne_a_garder; $i<count($compteur_live); $i=$i+2) {
		if(trim($compteur_live[$i+1]) != $ip_en_cours) {
			$compteur .= trim($compteur_live[$i])."\n".trim($compteur_live[$i+1])."\n";
		}
	}
}

$compteur .= date('U')."\n".$ip_en_cours;
$pointeur=fopen("compteur-live.txt","w");
fputs($pointeur,$compteur);
fclose($pointeur);
?>
Où est mon erreur ?! Pourquoi cette erreur n'apparait-elle qu'une fois sur deux ?! De plus quand elle apparait après quelques rafraichissements,elle disparait ! Help ! :(

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

17 oct. 2006, 00:17

Avec le BBcode activé et les balises
 plutôt que [CODE], c'est tout de suite mieux. 

Et comme ça, tu peux indenter le code. Nos yeux t'en remercient.

Bon à priori c'est variable $premiere_ligne_a_garder qui a un problème, donc tu commences à débugger classiquement :
echo de cette variable au début du script, après son assignation, dans la boucle, après la boucle... bref à chaque fois qu'elle est modifiée.

Edit : ah oui et puis j'avais pas vu, c'est le mauvais forum ! "Projets, collaboratifs, entreaide, c'est pour demander de l'aide à la réalisation d'un projet entier... pas de l'aide sur un problème
=> "Débuter en PHP"

Mammouth du PHP | 1776 Messages

17 oct. 2006, 00:24

Je vais te rentrer dans le lard...

Pour coder, il faut de la rigueur, et savoir lire ! Apparemment, tu n'est capable de faire la différence entre le forum "Projets collaboratifs, Entraide" de la section emploi avec "Débuter en PHP", "PHP4" ou "PHP5" de la rubrique Langages côté-serveur...
C'est un peu comme si en php tu dois faire une division mais que tu multiplie...ça risque de pas donner le résultat escompté !

Ensuite, il y a des règles, des recommandations...comme METTRE SON CODE ENTRE BALISES PHP (afin de respecter ceux qui vont te lire, pour qu'ils ne doivent pas tout traduire, la coloration syntaxique ça aide).

Pour ton problème, ils suffit de traduire l'anglais... Undefined offset = variable (ou assimilée) non définie...
reste à trouver qu'est ce qui peut être indéfini dans ton code ligne 6...

[EDIT] ouckikleou a été plus rapide ^^. et dsl mais je suis moins gentil que toi, car à un moment ça commence à suffir. On accumule les 'conneries' : pas de balises, post dans le mauvais endroit. J'ai comme l'impression que ce post a été lâché en pleine nature phpfrancaise, au ptit bonheur la chance...