Erreur php

Signaler
Messages postés
3
Date d'inscription
vendredi 21 février 2014
Statut
Membre
Dernière intervention
29 mars 2016
-
jordane45
Messages postés
27589
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 février 2020
-
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

Messages postés
27589
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 février 2020
323
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
27589
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 février 2020
323
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' ";