Erreur php

GBEGNRAN KOFFI MESSAN Messages postés 3 Date d'inscription vendredi 21 février 2014 Statut Membre Dernière intervention 29 mars 2016 - 29 mars 2016 à 21:12
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 29 mars 2016 à 21:31
Bonjour !
Je suis train d'écrire un script en PHP.
J'ai créé deux variables :
$post_nom=$_POST['nom'] et $post_pass=$_POST['pass'] ; pour recueillir les données du formulaire.
Dans le but de les utiliser dans une requête SQL :
'SELECT * FROM table_message, table_membre WHERE nom=$post_nom AND pass=$post_pass' ;
Le problème que j'ai c'est que, quand le visiteur arrive directement sur la page d'accueil pour saisir son nom et mot de passe, PHP lui affiche Undefined index : nom et Undefined index : pass.
Ma question : comment utiliser la fonction : isset( ) pour éviter l'affichage de ce genre de messages ?
Merci.

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
29 mars 2016 à 21:29
Bonjour,

Par ce que tant que l'utilisateur n'a pas cliqué sur le submit ... les variables POST n'existent pas.

pour remédier à ça ( et vu que c'est plus sûr de le faire ainsi...) tu peux utiliser l'écriture TERNAIRE et les fonctions ISSET ou !EMPTY
Comme ceci :

$post_nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL;  
$post_pass= !empty($_POST['pass'] ) ? $_POST['pass']  : NULL;
    • L'écriture ternaire est une sorte de "if"
    • !empty permet de vérifier que la variable existe ET n'est pas vide


Ce qui revient à dire :
Si la variable $_POST['pass'] n'est pas vide .. alors $post_pass =$_POST['pass'] ... Sinon elle vaut NULL



0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
Modifié par jordane45 le 29/03/2016 à 21:31
PS: Ta requête est également fausse ....
Tu as oublié d'y mettre des QUOTES autour de tes variables.

ainsi que la jointure entre tes deux tables :


"SELECT * 
 FROM table_message M , table_membre U
 WHERE U.id_membre = M.id_membre
    AND U.nom='$post_nom'
    AND U.pass='$post_pass' "; 
0
Rejoignez-nous