Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1472 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Probleme avec $_GET....

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Probleme avec $_GET....

n°608100
Big-Foot
Posté le 11-01-2004 à 16:21:59  profilanswer
 

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 ?

mood
Publicité
Posté le 11-01-2004 à 16:21:59  profilanswer
 

n°608102
antp
Super Administrateur
Champion des excuses bidons
Posté le 11-01-2004 à 16:23:23  profilanswer
 

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 :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°608106
Big-Foot
Posté le 11-01-2004 à 16:38:39  profilanswer
 

j'était sur que qq'un allait me dire d'abandonner easyphp :D , 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 :


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
; error_reporting is a bit-field.  Or each number up to get desired error
; reporting level
; E_ALL             - All errors and warnings
; E_ERROR           - fatal run-time errors
; E_WARNING         - run-time warnings (non-fatal errors)
; E_PARSE           - compile-time parse errors
; E_NOTICE          - run-time notices (these are warnings which often result
;                     from a bug in your code, but it's possible that it was
;                     intentional (e.g., using an uninitialized variable and
;                     relying on the fact it's automatically initialized to an
;                     empty string)
; E_CORE_ERROR      - fatal errors that occur during PHP's initial startup
; E_CORE_WARNING    - warnings (non-fatal errors) that occur during PHP's
;                     initial startup
; E_COMPILE_ERROR   - fatal compile-time errors
; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
; E_USER_ERROR      - user-generated error message
; E_USER_WARNING    - user-generated warning message
; E_USER_NOTICE     - user-generated notice message
;
; Examples:
;
;   - Show all errors, except for notices
;
; error_reporting = E_ALL & ~E_NOTICE
;
;   - Show only errors
;
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
;
;   - Show all errors
;
error_reporting  =  E_ALL
 
; Print out errors (as a part of the output).  For production web sites,
; you're strongly encouraged to turn this feature off, and use error logging
; instead (see below).  Keeping display_errors enabled on a production web site
; may reveal security information to end users, such as file paths on your Web
; server, your database schema or other information.
display_errors = On

n°608111
antp
Super Administrateur
Champion des excuses bidons
Posté le 11-01-2004 à 16:51:13  profilanswer
 

heu là t'as laissé le "error_reporting  =  E_ALL" , faut rajouter le truc avec notice comme indiqué dans l'exemple


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°608176
mrbebert
Posté le 11-01-2004 à 18:04:48  profilanswer
 

Il faut plutôt vérifier que le paramètre existe :
if (isset($_GET['variable'])) {
    $pVariable = $_GET['variable'];
} else {
    $pVariable = valeur_par_defaut;
}

n°608895
Big-Foot
Posté le 12-01-2004 à 13:58:00  profilanswer
 

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  :??:

n°608909
deliriumtr​emens
sic transit intestinal...
Posté le 12-01-2004 à 14:12:44  profilanswer
 

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 !

n°608915
Big-Foot
Posté le 12-01-2004 à 14:17:21  profilanswer
 

c'est vrais, mais jusqu'à maintenant je savais pas que ca provoquait une erreur  [:airforceone]  
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 :/

n°608924
deliriumtr​emens
sic transit intestinal...
Posté le 12-01-2004 à 14:22:26  profilanswer
 

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.

n°608930
Big-Foot
Posté le 12-01-2004 à 14:24:10  profilanswer
 

:D  
ok merci la c'est clair !  :D  
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 ???

mood
Publicité
Posté le 12-01-2004 à 14:24:10  profilanswer
 

n°608939
deliriumtr​emens
sic transit intestinal...
Posté le 12-01-2004 à 14:30:37  profilanswer
 

Big-Foot a écrit :

:D  
ok merci la c'est clair !  :D  
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 ???


 
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 !


Message édité par deliriumtremens le 12-01-2004 à 14:31:15
n°608941
Big-Foot
Posté le 12-01-2004 à 14:32:10  profilanswer
 

ah ok donc c'est vraiment utile d'utiliser ce controle :jap:

n°609271
Big-Foot
Posté le 12-01-2004 à 18:17:43  profilanswer
 

encore une petite question :
 
si au lieu d'avoir :

Code :
  1. if (isset($_GET['variable'])) {
  2.    $pVariable = $_GET['variable'];
  3. } else {
  4.    $pVariable = valeur_par_defaut;
  5. }


 
j'ai :

Code :
  1. $variable = $_GET['variable'];
  2. if (empty($variable)) {
  3.    $pVariable = $variable;
  4. } else {
  5.    $pVariable = valeur_par_defaut;
  6. }


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 ??

n°609293
SomeBugsIn​Me
life suxx
Posté le 12-01-2004 à 18:46:48  profilanswer
 

Big-Foot a écrit :

encore une petite question :
 
si au lieu d'avoir :

Code :
  1. if (isset($_GET['variable'])) {
  2.    $pVariable = $_GET['variable'];
  3. } else {
  4.    $pVariable = valeur_par_defaut;
  5. }


 
j'ai :

Code :
  1. $variable = $_GET['variable'];
  2. if (empty($variable)) {
  3.    $pVariable = $variable;
  4. } else {
  5.    $pVariable = valeur_par_defaut;
  6. }


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 ??


 
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

n°609298
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-01-2004 à 18:50:16  profilanswer
 

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


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°609308
Big-Foot
Posté le 12-01-2004 à 19:04:14  profilanswer
 

hum ok, donc ca me ferait l'erreur :/
ce qui me derrange c'est le fait de devoir betement recuperer $variable une seconde fois

n°609311
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-01-2004 à 19:06:03  profilanswer
 

:??: je vois pas trop le problème


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°609314
Big-Foot
Posté le 12-01-2004 à 19:08:53  profilanswer
 

question de style du code  [:aloy]  
 :whistle:  
mais je pense que je peut m'en passer

n°609317
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-01-2004 à 19:09:55  profilanswer
 

la 1e solution donne une ligne de moins, et je vois pas trop ce que ça change au style [:mlc]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°609322
Big-Foot
Posté le 12-01-2004 à 19:14:01  profilanswer
 

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

n°609328
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-01-2004 à 19:16:17  profilanswer
 

ouais enfin je vois pas l'intérêt par rapport à l'autre solution :heink:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°609336
Big-Foot
Posté le 12-01-2004 à 19:22:15  profilanswer
 

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  :sweat:

n°609352
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-01-2004 à 19:57:19  profilanswer
 

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 :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°610211
mrbebert
Posté le 13-01-2004 à 11:08:30  profilanswer
 

Big-Foot a écrit :

c'est vrais, mais jusqu'à maintenant je savais pas que ca provoquait une erreur  [:airforceone]  
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 :/

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.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Probleme avec $_GET....

 

Sujets relatifs
[PHP] Récupération de valeurs de checkboxes pour formulaire POST[PHP] Connaître la taille d'un répertoire sur un serveur en local...
[PHP/sql] Valeur d'un champs table sql qui change au cours du temps ?Probleme de polynomes
[PB'S]Easy PHP & PHP Nuke[PHP] Pour faire une mosaique photo
[PHP] redimensionner une image ?Prob avec la touche "entrée" pour formulaire PHP ou HTML ?
[VB] Probleme de debutant[PHP] Utilisation de RedirectPermanent vers JPG ?
Plus de sujets relatifs à : [PHP] Probleme avec $_GET....


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR