[isset]marque undefined index in...wamp 2.2

Résolu/Fermé
Signaler
Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
-
Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
-
Bonjour,
débutant dans la programmation web et plus précisement PHP.
j'ai écrit une page PHP en utilisant la version wamp 2.0 et les echo de $POST pour les index non existant etai tout simplement ignorée. j'ai mis à jour la version de wamp. et voilà plein d'erreur d'undefined index.
j'ai donc fais ceci:
creer une fonction  
function _if($condition, $valeurtrue,$valeurfalse){ 
        if($condition) 
              return $valeurtrue; 
       else 
              return $valeurfalse; 
} 

cette fonction ressemble a la fonction de VB iif(...). et à l'utilisation du if tertiaire.
lorsque j'utilise en faisant
echo _if(isset($POST['nom']), $POST['nom'],"") 

il marque toujours undefined index nom et pourtant le issset(.....) a pour le role de verifier si la variable existe.
mais quand j'utilise le if tertiaire
 echo isset($POST['nom'])?$POST['nom']:""; 

il marche. j'aimerai bien savoir pourquoi ma fonction osi simple qu'elle parait ne marche pas et pourtant elle implémente le if tertiaire qui lui marche.
MErci d'avance pour vos réponses.



"L'ordinateur est une grande invention : il y a autant d'erreur qu'avant mais plus personne n'est responsable..."

1 réponse

Messages postés
865
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
20 décembre 2012
187
il faut utiliser $_POST et non $POST
0
Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
23
j'utilise en effet $_POST et non $POST. c'est juste que pour ce post je saisissai $POST. je dois avouer que je ne le devrai pas.
0
Messages postés
865
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
20 décembre 2012
187
mais tu utilises $_POST dans quel cas ? dans la page de traitement d'un formulaire ?
0
Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
23
donne moi un instant je modifie.En effet, lorsque le formulaire est réaffiché parce que l'utilisateur n'a pas respecté les critères, je l'aide en remplissant les anciens champs rempli. voilà la raison de mon isset($_POST['nom'])?$_POST['nom']:"". je fais cela dans les value des inputs
0
Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
23
ceci n'est qu'un exemple pour le champ nom, je le fais aussi pour les autre champs. j'ai mi du javascript pour obligé le remplissage des champs obligatoires. mais dans un forum lu, en plus de la protection javascript coté client, il fallait aussi renforcé la protection en effectuant une vérification coté serveur avant de valider les données.
0
Messages postés
865
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
20 décembre 2012
187
en faite le problème c'est que tu utilises $_POST['nom'] comme paramètre dans ta fonction _if , et comme php veut la lire avant d'executer la fonction si elle n'existe pas ça fait une erreur ..
alors que dans ton if ternaire tu dis simplement que si $_POST['nom'] n'existe pas ça vaut ' ' ou alors $_POST['nom] , et si l'interpréteur php est arrivé à cette partie du if ça veut dire que la valeur existe bien donc il n'y a pas d'erreur suite à l'affichage .

tu ne peux donc pas créer de fonction _if comme tu le souhaite
0