[PHP] Variables non définies

Résolu/Fermé
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 11 févr. 2009 à 12:29
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 15 févr. 2009 à 14:02
Bonjour tout le monde,

Voilà en fait sur mes sites j'oublie parfois d'initialiser les variables dans tout les cas possible, lorsque je suis sur l'hébergeur ça ne pose aucun soucis, mais chez moi en local (avec WAMP), j'ai des erreurs de ce type, pas très dérangeantes mais je voudrais bien m'en passer (vu que l'hébergeur parvient à ne pas les afficher).

Notice: Undefined variable: upload_ok in C:\wamp\www\mylbn\modules\admin\files_upload_add.admin.php on line 24


J'ai donc regarder dans le php.ini, mais je n'ai rien trouvé sur les variables non définies. J'ai commencer à faire des if(isset($variable)) avant de faire d'autres tests dessus mais ça me lourde un peu car il y en a un peu partout.

Donc si quelqu'un possède la solution pour ne plus être embêter par ces erreurs/notifications je le remercie d'avance.
A voir également:

7 réponses

zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 199
11 févr. 2009 à 12:31
Salut, tu peux nous mettre le script de la page ,s'il te plait ?
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
11 févr. 2009 à 12:33
Il nous faut du code !!!!!!

^^

0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
11 févr. 2009 à 12:37
Ne pas initialiser une variable est une erreur ...
Pas besoin de isset() partout, un simple : $tavariable = ""; avant toute utilisation de celle-ci et ça sera bon :)
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
11 févr. 2009 à 23:03
Bon je vous fait rapide un script qui génère cette erreur, je me foule pas sur le html :)

<html>
<head><title>titre test</title></head>
<body>
<?php
if($maVariableNonInitialisee == 2)
    echo "<p>Lililalilère</p>";
else
	echo "<p>Lalalilalère</p>";
?>
</body>
</html>


Ce qui m'affichera ceci en local (sous WAMP 2.0) :

==========
Notice: Undefined variable: maVariableNonInitialisee in C:\wamp\www\erreur.php on line 5
Lalalilalère
==========


Et ceci sur mon hébergeur :
==========
Lalalilalère
==========


Donc en gros sur l'hébergeur tout se passe bien, et sur le local il me lache un warning dont j'aimerais me passer autrement qu'en mettant des @ partout :p

Passarinho> Je sais que c'est un peu une erreur mais ici j'aimerais la contourner, l'hébergeur y arrive bien donc logiquement je peux le faire moi aussi. En même tant PHP n'est pas un langage hyper explicite sur ce genre de choses donc on va pas faire un caca comme si c'était du C ^^

Merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
12 févr. 2009 à 10:21
Les accolades ne sont pas obligatoires, si tu n'en met pas, une seul instruction après le if sera executée, exemple :

// 1
if(true)
    echo "ceci va s'afficher<br />";
echo "ceci va s'afficher aussi mais on est sortit du IF<br />";

// 2
if(false)
    echo "ceci ne s'affichera pas<br />";
echo "ceci va s'afficher<br />";

// 3
if(true)
    echo "ceci va s'afficher<br />";
else
    echo "ceci ne s'affichera pas<br />";
echo "ceci va s'afficher mais on est sortit du IF ELSE<br />";

// Même chose avec les boucles : 
$x = 10;

while($x >= 1)
    echo($x--);
echo "<br />compte à rebours terminé";
// sortie : "10987654321
// compte à rebours terminé"


Essaye chez toi ou sur ton site, si tu ne comprends toujours pas, sinon va voir sur le site du zéro.

Bref je n'ai pas poser de question là dessus, ce serait bien si les gens qui pensent pouvoir faire quelque chose pour moi s'en abstienne tant que ce n'est pas en rapport direct avec la question, où qu'ils n'ont aucune idée de mon petit soucis (php.ini, variables non initialisées, ...).

Merci d'avance :)
0
Utilisateur anonyme
12 févr. 2009 à 10:39
Salut, essaye de remplacer
if($maVariableNonInitialisee == 2)
par
if(isset($maVariableNonInitialisee) AND $maVariableNonInitialisee == 2)


Edit: Ou alors en début de page, tu mets
$maVariableNonInitialisee = '';
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
12 févr. 2009 à 16:58
J'ai donc regarder dans le php.ini, mais je n'ai rien trouvé sur les variables non définies. J'ai commencer à faire des if(isset($variable)) avant de faire d'autres tests dessus mais ça me lourde un peu car il y en a un peu partout.

Merci gogeta, mais comme j'ai dit ça me lourde un peu de mettre des isset partout car j'ai ces "warning" qui sont bien dispersés parmis pas mal de lignes de codes (quasi 3000 dans environ 60 fichiers).

Donc je cherche la solution que l'hébergeur utilise (qui doit surement être la modification de la configuration de php.ini).

D'avance merci.
0
Utilisateur anonyme > scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023
12 févr. 2009 à 17:12
Oki d'après ce lien , il te faut désactiver la constante de report d'erreurs E_NOTICE.
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425 > Utilisateur anonyme
13 févr. 2009 à 22:59
Un tout grand merci Gogeta, enfin la réponse que je souhaitais =)

J'ai donc mit ceci dans mon php.ini pour la valeur error_reporting :
;default : error_reporting  =  E_ALL
error_reporting = E_ALL & ~E_NOTICE


Par défaut c'était error_reporting = E_ALL

En ajoutant & ~E_NOTICE ça enlève les erreurs de type NOTICE (donc celles que je ne voulais pas :) ).

Encore merci et à bientôt.
0
Utilisateur anonyme > scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023
14 févr. 2009 à 11:19
De rien, content d'avoir pu t'aider^^
Oublie pas de mettre ton sujet en Résolu, sinon c'est cool aussi de ta part d'avoir posté ta solution.
Voilà en espérant que ça aide quelqu'un d'autre!! ;D
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425 > Utilisateur anonyme
15 févr. 2009 à 14:02
Voilà c'est fait, désolé du petit oubli ^^

A la prochaine, j'espère que ça en aidera d'autres aussi :)
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
12 févr. 2009 à 05:11
Tu as un ptit peu oublié les acolades pour la condition if ...
<html>
<head><title>titre test</title></head>
<body>
<?php
if($maVariableNonInitialisee == 2)
{
    echo "<p>Lililalilère</p>";
}
else
{
	echo "<p>Lalalilalère</p>";
}
?>
</body>
</html>


^^ ...
-1