[PHP] Variables non définies

Résolu
scriptiz Messages postés 1424 Date d'inscription   Statut Membre Dernière intervention   -  
scriptiz Messages postés 1424 Date d'inscription   Statut Membre Dernière intervention   -
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.

7 réponses

zoby44 Messages postés 818 Date d'inscription   Statut Membre Dernière intervention   199
 
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   Statut Membre Dernière intervention   102
 
Il nous faut du code !!!!!!

^^

0
Passarinho44 Messages postés 963 Date d'inscription   Statut Contributeur Dernière intervention   132
 
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   Statut Membre Dernière intervention   425
 
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   Statut Membre Dernière intervention   425
 
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
 
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   Statut Membre Dernière intervention   425
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   425 > Utilisateur anonyme
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   425 > Utilisateur anonyme
 
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   Statut Membre Dernière intervention   102
 
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