Notice: Undefined variable

Notice: Undefined variable - PHP - Programmation

Marsh Posté le 06-01-2003 à 15:26:55    

salut
je viens d'installer une nlle machine
 
et si la variable n'est pas initialisé
j'obtiens ceci :
Notice: Undefined variable: dd in c:\program files\apache group\apache\htdocs\proc\test.php on line 2
 
le code est le suivant  

Code :
  1. <?php
  2. echo $dd;
  3. ?>


 
il crie aussi pour $php_self (même msg d'erreur)
c un php 4.2.3 en module Apache
idem avec le 4.3
 
:??:

Reply

Marsh Posté le 06-01-2003 à 15:26:55   

Reply

Marsh Posté le 06-01-2003 à 15:30:40    

voir le error_reporting ou error_handling dans le php.ini,
 
il ne s'agit pas vraiment d'une erreur, mais ton php est configuré pour reporter les message "notice" concernant les variables non définies et autres joyeusetés


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 06-01-2003 à 15:33:40    

c'etait
error_reporting  = E_ALL; display all errors, warnings and notices
j'ai mis : error_reporting = E_ALL & ~E_NOTICE
 
et pour le $php_self? c'est pas déjà initialisé par défaut?
merci

Reply

Marsh Posté le 06-01-2003 à 15:34:31    

$PHP_SELF n'existe plus..
 
utiliser $_SERVER['PHP_SELF'] à la place ;)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 06-01-2003 à 15:38:06    

j'ai vu ça ds la doc mais ça ne semble pas fonctionner  :??:  
 
Notamment sur la page de protection (de base :o)
 

Code :
  1. <? if(isset($pass))
  2. {
  3. // si le visiteur a tapé "toto" dans le formulaire
  4. // on met "ok" dans le cookie
  5.    if($pass=="toto" ) setcookie("passe2","ok", time()+1800);
  6. // sinon si le lien contient ?pass=no
  7. // on vide le cookie
  8.    if($pass=="no" ) setcookie("passe2" );
  9. // on valide le cookie
  10.    Header("Location: ".$_SERVER['PHP_SELF']);
  11. }
  12. // on lit le cookie
  13. $isOK = ($passe2!="" );
  14. // si non vide >> affiche le menu
  15. if($isOK) { ?>
  16.    <center>
  17.    <A href="?pass=no">Déconnecter</A>
  18.    </center><hr>
  19. <? // si vide >> affiche le formulaire
  20. } else {
  21. ?>
  22.    <form method="post">
  23.       <table><tr>
  24.          <td><input type="password" name="pass"></td>
  25.          <td><input type="Submit" value="Entrer"></td>
  26.       </tr></table>
  27.    </form>
  28. <? } ?>


 
:/ alors que ça marche sur ce même php chez un hebergeur pro :??:

Reply

Marsh Posté le 06-01-2003 à 15:41:27    

si tu fais un echo $_SERVER['PHP_SELF']; ça donne rien du tout ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 06-01-2003 à 15:44:10    

Sh@rdar a écrit :

si tu fais un echo $_SERVER['PHP_SELF']; ça donne rien du tout ?


si pourtant ça me sort bien le path de ce fichier  
:??:

Reply

Marsh Posté le 06-01-2003 à 15:46:56    

alors l'erreur vient de ton script
 
certainement une condition toujours fausse ou un truc dans le genre


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 06-01-2003 à 16:19:14    

je sais pourquoi
 
il ne traite aucune des valeurs passé en paramètres comme par exemple ceci
 
script.php?var=10
 
si on fait un isset($var)
il trouve que celle ci n'est pas initialisé  :heink:  :pfff:  :whistle:

Reply

Marsh Posté le 06-01-2003 à 16:20:58    

pour la même raison que $PHP_SELF ne marche plus !
 
register_globals=off; fait que les variables ne sont plus globales mais accessibles uniquement via les tableaux $_GET, $_POST ou $_SESSION
 
regarde au niveau de la doc


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 06-01-2003 à 16:20:58   

Reply

Marsh Posté le 06-01-2003 à 16:20:59    

c peut être apache :/

Reply

Marsh Posté le 06-01-2003 à 16:21:26    

AGA a écrit :

je sais pourquoi
 
il ne traite aucune des valeurs passé en paramètres comme par exemple ceci
 
script.php?var=10
 
si on fait un isset($var)
il trouve que celle ci n'est pas initialisé  :heink:  :pfff:  :whistle:  


 
Bin ui, faut faire un $_GET (ou $GET, ch'ais pu) du même style que le $_SERVER. Genre $_GET('var';).
 
EDIT : [:grilled]


Message édité par Taiche le 06-01-2003 à 16:22:02

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 06-01-2003 à 16:21:56    

je peux pas remettre a l'ancienne?
promis les prochains devel seront clean mais là jpeux pas tout reprendre  :o  :whistle:

Reply

Marsh Posté le 06-01-2003 à 16:24:38    

bon j'ai mis ça sur on
et tout remarche
 :jap:  
par contre je note que comme je faisais c'etait mal :o
 
merci  :jap:

Reply

Marsh Posté le 06-01-2003 à 16:24:46    

tu peux en activant dans le php.ini le paramètre register_globals sur on mais c'est ultra déconseillé !!
 
y'a de moins en moins d'hébergeurs qui proposent cette option


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed