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

Résolu
ajp55 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   -  
ajp55 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   -
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

naruto-94 Messages postés 865 Date d'inscription   Statut Membre Dernière intervention   188
 
il faut utiliser $_POST et non $POST
0
ajp55 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   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
naruto-94 Messages postés 865 Date d'inscription   Statut Membre Dernière intervention   188
 
mais tu utilises $_POST dans quel cas ? dans la page de traitement d'un formulaire ?
0
ajp55 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   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
ajp55 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   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
naruto-94 Messages postés 865 Date d'inscription   Statut Membre Dernière intervention   188
 
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