Erreur php

Messages postés
3
Date d'inscription
vendredi 21 février 2014
Dernière intervention
29 mars 2016
- - Dernière réponse : jordane45
Messages postés
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
- 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 

Votre réponse

1 réponse

Messages postés
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
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
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
-
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.