Erreur php

Messages postés
3
Date d'inscription
vendredi 21 février 2014
Statut
Membre
Dernière intervention
29 mars 2016
- - Dernière réponse : jordane45
Messages postés
26487
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 octobre 2019
- 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.
Afficher la suite 

1 réponse

Messages postés
26487
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 octobre 2019
316
0
Merci
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



jordane45
Messages postés
26487
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 octobre 2019
316 -
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' "; 
Commenter la réponse de jordane45