Ce forum est maintenant fermé, seule cette archive statique reste consultable.
  FORUM Rue-Montgallet.com
  Programmation
  Php - Sql

  débutant, les ennuis commencent...

Bas de page
Auteur Sujet :

débutant, les ennuis commencent...

n°17143
morpheusty
Profil : Jeune recrue
Posté le 20-07-2006 à 18:07:31  
 

Bonjour à tous les phpistes,
 
En tant que débutant, je ne créé pas encore de script, mais tante seulement d'en récupérer sur la toile et de les faire fonctionner.
Mon problème actuel (parceque j'en ai souvant  :) ) c'est que dans le programme que j'essai de faire fonctionner, commence par un "if $variable==..." et le résultat est :
Notice: Undefined variable: id_album in e:\site web\site atd\le site\pagealbum\admin.php on line 18
 
est-ce normal de commencer un programme comme ça? le concepteur du programme as-t-il oublié quelque chose?


---------------
  ~ MorPheusTY ~
mood
Pub
Posté le 20-07-2006 à 18:07:31  
 

n°17145
patricedes​aintsteban
Profil : Jeune recrue
Posté le 21-07-2006 à 09:53:08  
 

L'erreur qui est indiqué est simplement une notice ! Donc ce n'est pas une erreur mais un avertissement de php pour lui dire que ce qui est écris n'est pas très clair !
Ce que t'indique le message est que la variable id_album n'est pas définis c'est à dire qu'elle n'existe pas. Cela ne bloque pas car php l'utilse en tant que variable vide. Mais pour être rigoureux, il faut vérifier avant chaque utilisation de variable que celle si existe bien grâce à la fonction isset($variable) qui indique si la variable est définie.
Cette variable m'a tous l'air d'être une variable qui doit être passé en paramètre au script :
nom_script.php?id_album=1 par exemple.
Php au début créait directement les variables passé en paramètre (la variable id_album aurai été créé avec la valeur 1), mais cela n'est plus le cas, à cause de trous de sécurité que ce systeme pouvait déclanché pour la plupare des utilisateurs qui ne faisait pas attention !
Pour accéder à ces variables, il faut maintenant passé par des tableaux superglobaux :
$_GET, $_POST, etc ...
Pour récupérer ta variablbe, il faut l'appeler comme cela :
$_GET['id_album']
 
Tu peut donc mettre une ligne dans ton script :
$id_album = isset($_GET['id_album'])? $_GET['id_album'] : 1;
 
Qui va alors créer la variable $id_album en récupérant la valeur passé en paramètre au script ou en utilisant une valeur pas default (ici 1)
voila

n°17150
morpheusty
Profil : Jeune recrue
Posté le 21-07-2006 à 18:31:33  
 

Merci patrice,
 
c'est un peu plus clair comme ça et en fait je m'en suis rendu compte apres avoir écrit le message qu'il fallait que je recupère la variable par $_POST ou par SELECT quand ça provient de la BD, mais c'est pas toujours facil à trouver quand on ne sait pas d'ou est sensée provenir la variable et quel est son rôle.
 
Mais la plupart du temps mon problème est que:
dans le programme le concepteur l'a divisé en plusieurs morceaux de codes qui interviennent dans différents cas de figures et dont l'execution depend de l'existance ou pas d'une variable (c'est la page admin d'un viewer de photos et comme mes tables sont encore vides...)
 
isset revient à $variable=''  ?
j'ai vu qu'on pouvait aussi mettre un @ devant la varible: @$variable, mais je pense que ça camoufle juste la notice d'erreur.
 
C'est quand même pas simple, j'en suis à mon 2eme script que j'arrive pas à faire fonctionner pour faire un diaporama sur mon site, en plus même si j'arrive à débugger celui là c'est pas dit que ça fonctionne car il faut un chmod777 sur les repertoires de photo et c'est apparament pas possible chez free. c'est pas gagné mon histoire :heink:


---------------
  ~ MorPheusTY ~
n°17155
P-Y
Profil : Vieux de la vieille
Posté le 23-07-2006 à 22:50:10  
 

Si je peux me permettre, si ton script requiert des droits 777 sur quoi que ce soit, c'est qu'il est vraiment tres mal foutu, et tu devrais en changer ...


---------------
Le trikapalanet
  FORUM Rue-Montgallet.com
  Programmation
  Php - Sql

  débutant, les ennuis commencent...

© 2000-2024 Forum.rue-montgallet.com - Tous droits réservés