Probleme avec $_GET.... [PHP] - PHP - Programmation
Marsh Posté le 11-01-2004 à 16:23:23
Il faut désactiver E_NOTICE comme expliqué dans ce guide :
http://forum.hardware.fr/forum2.ph [...] 943&cat=10
qui explique aussi comment pouvoir se passer d'Easyphp pour être maître de ce qu'on fait
Marsh Posté le 11-01-2004 à 16:38:39
j'était sur que qq'un allait me dire d'abandonner easyphp , ok ok je vais le faire des que j'ai un peut de temps
Bon alors j'ai fait comme expliqué, mais l'erreur s'affiche quand meme :
Citation : |
Marsh Posté le 11-01-2004 à 16:51:13
heu là t'as laissé le "error_reporting = E_ALL" , faut rajouter le truc avec notice comme indiqué dans l'exemple
Marsh Posté le 11-01-2004 à 18:04:48
Il faut plutôt vérifier que le paramètre existe :
if (isset($_GET['variable'])) {
$pVariable = $_GET['variable'];
} else {
$pVariable = valeur_par_defaut;
}
Marsh Posté le 12-01-2004 à 13:58:00
finalement j'ai installé tout sans easyphp, et c'est bon
mrbebert -> Bon maintenant j'ai plus vraiment besoins de ca vu que chez moi et chez mon hébergeur il ne fait pas d'erreur dans ce cas, mais je voudrais savoir si ce que tu dit fonctionne vraiment.
Avant de poster ici, il me semble que j'avais testé la meme chose, mais il mettait la meme erreur, comme si le seul fait qu'il y ai un $_GET['variable'] dans le script pose probleme
Marsh Posté le 12-01-2004 à 14:12:44
Je ferais comme mrbebert.
La philosophie "on m'affiche des alertes (notices), pour corriger je supprime l'affichage des alertes" est un poil légère.
J'avais un script foireux où l'accumulation de notices provoquait un temps de chargement de page infini, sans qu'aucune erreur apparaisse.
-> Mieux vaut coder proprement et le vérifier avec affichage des alertes en local, tant qu'à faire !
Marsh Posté le 12-01-2004 à 14:17:21
c'est vrais, mais jusqu'à maintenant je savais pas que ca provoquait une erreur
bon alors j'utiliserait ce controle comme l'a ecrit mrbebert, si qq'un me confirme que ca enleve vraiment cette erreur, parce comme j'ai ecrit plus haut il me semblait que le probleme venait du simple fait que $_GET['variable'] soit ecrit dans la page
Marsh Posté le 12-01-2004 à 14:22:26
Non, c'est juste que si dans ta page tu fais référence à une variable qui n'existe pas et que tu n'as pas fait de test pour vérifier cela, tu auras droit à une alerte.
->bebert's solution corrigera la chose, confirmation, je répète, confirmation.
Marsh Posté le 12-01-2004 à 14:24:10
ok merci la c'est clair !
au fait ca devait etre impressionnant ce truc :
Citation : J'avais un script foireux où l'accumulation de notices provoquait un temps de chargement de page infini, sans qu'aucune erreur apparaisse. |
t'a fait comment ???
Marsh Posté le 12-01-2004 à 14:30:37
Big-Foot a écrit :
|
Ben c'était un con de formulaire avec bon nombre de champs...
J'avais simplement des
<input type=... value="<?=$_POST['machin']?>" />
J'essayais de couper des bouts du form pour voir d'où venait l'erreur, et à chaque fois que j'avais plus de 11 champs tout partait en couille (affichage de 3 champs et chargement infini)...
Rien de terrible dans le fonds, mais j'avais mis du temps à piger ma bêtise !
EDIT : vi c'était même pas un script foireux, en fait, bien plus con !
Marsh Posté le 12-01-2004 à 18:17:43
encore une petite question :
si au lieu d'avoir :
Code :
|
j'ai :
Code :
|
Est ce que ca change quelque chose ? est ce que le fait que je donne une valeur qui peut ne pas exister à $variable pose probleme ??
Marsh Posté le 12-01-2004 à 18:46:48
Big-Foot a écrit : encore une petite question :
|
ben tu auras les mêmes messages d'erreur (en fin plutôt de warning) car tu affectes à $variable une variable inexistante ($_GET['variable']).
Utilises la méthode de mrBebert
Marsh Posté le 12-01-2004 à 18:50:16
le premier teste si la variable existe
le tien teste si la variable contient une chaîne vide, mais ne vérifie pas si elle existe ou non
Marsh Posté le 12-01-2004 à 19:04:14
hum ok, donc ca me ferait l'erreur
ce qui me derrange c'est le fait de devoir betement recuperer $variable une seconde fois
Marsh Posté le 12-01-2004 à 19:06:03
je vois pas trop le problème
Marsh Posté le 12-01-2004 à 19:08:53
question de style du code
mais je pense que je peut m'en passer
Marsh Posté le 12-01-2004 à 19:09:55
la 1e solution donne une ligne de moins, et je vois pas trop ce que ça change au style
Marsh Posté le 12-01-2004 à 19:14:01
ben si je definie une variable $variable = $_GET['variable'];
celle-ci est stocké en memoire non ? php ne va donc pas tenter a chaque fois de recuperer $_GET['variable']. Enfin c'est ce qu'il me semble
Marsh Posté le 12-01-2004 à 19:16:17
ouais enfin je vois pas l'intérêt par rapport à l'autre solution
Marsh Posté le 12-01-2004 à 19:22:15
imaginons que je veux recuperer $_GET['variable'] 10 fois dans le script, dans ce cas avec un $variable = $_GET['variable']; définie avant le isset au lieu d'apres, je gagne un $_GET['variable'];
bon ok c'est pas grand chose
Marsh Posté le 12-01-2004 à 19:57:19
tu fais une fois le isset pour initialiser variable soit avec le get soit avec la valeur par defaut, je vois pas le problème
Marsh Posté le 13-01-2004 à 11:08:30
Big-Foot a écrit : c'est vrais, mais jusqu'à maintenant je savais pas que ca provoquait une erreur |
oui, ca marche bien
L'avertissement apparait quand tu utilise (que tu lis la valeur) une variable qui n'existe pas. Mais "isset" ne lit pas la valeur, il se contente de vérifier que la variable existe.
Marsh Posté le 11-01-2004 à 16:21:59
Hello,
Je vient enfin d'installer easyphp1.7, et j'ai un probleme qui est apparue :
quand dans un script je recupere la valeur $_GET['variable'] (meme chose avec $POST etc...), et que celle-ci n'existe pas il me sort une erreur.
Bon ok, ca parait normal, mais c'est très genant pour mes scripts
Sur mon serveur qui a la meme version php (4.33) je n'ai pas ce probleme. Comment je fait pour configurer chez moi ?