Not defined ?

Eléphant du PHP | 372 Messages

16 mai 2016, 18:03

Salut.

Je viens de faire une condition et php me retrourne comme quoi ma variable n'est pas établi pourtant il me semble que si ...
<?php
		if (!empty ($ligne['url'])) {
		$photo_annonce = ' <img class="img-responsive thumbnail" src="'.$ligne['photo'].'" alt="'.$ligne['titre'].'" title="'.$aLoisirs[$ligne['id_type_loisirs']].' '.$ligne['titre'].'">';
		}else{
		echo '<img class="img-responsive thumbnail" src="/digital/'.$image.'" alt="'.$ligne['titre'].'" title="'.$aLoisirs[$ligne['id_type_loisirs']].' '.$ligne['titre'].'">';
		}
		?>

<?php echo $photo_annonce;?>
Donc si $ligne['url'] n'est pas vide ca marche bien par contre dans le else j'ai donc ce fameux NOT DEFINED ...
Je ne vois pas ou est le problème ...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 mai 2016, 19:56

Bonjour,

Quand tu es dans le else, la seule certitude que tu peux avoir d'après ce code, c'est que $ligne['url'] est définie et non vide.

Et tu utilises les variables $ligne['titre'], $ligne['id_type_loisirs'] et $aLoisirs[$ligne['id_type_loisirs']] sans vérifier si celles-ci existent... fait un print_r() de $ligne et de $aLoisirs pour contrôler tes valeurs et tes indexes, ou définis des valeurs par défaut ou ajoute les tests qui vont bien avant d'utiliser ces variables ...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...