Comparaison variables php et base données mysql

Résolu/Fermé
Kowli_12
Messages postés
10
Date d'inscription
lundi 19 février 2018
Statut
Membre
Dernière intervention
28 avril 2018
- 24 févr. 2018 à 00:11
Kowli_12
Messages postés
10
Date d'inscription
lundi 19 février 2018
Statut
Membre
Dernière intervention
28 avril 2018
- 26 févr. 2018 à 19:10
Bonjour à tous
J'aimerais savoir comment comparer des variables envoyer par la méthode post à seuls stocké dans une base de donnée MySQL
par exemple comparer les données entré par l'utilisateur à seul enregistré dans la base de donnée.

Merci d'avance à ceux qui useront de leur temps pour me répondre

2 réponses

jordane45
Messages postés
35767
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 juillet 2022
4 200
24 févr. 2018 à 09:51
Bonjour,

Pour que l'utilisateur puisse envoyer des données en POST .. il faut un formulaire HTML
Ensuite, pour faire la comparaison ton script devra :
- Faire la connexion à la bdd ( en PDO ou Mysqli )
- Faire une requête SELECT qui ira chercher les données en BDD avec, dans le WHERE, ce que tu veux comparer


0
Kowli_12
Messages postés
10
Date d'inscription
lundi 19 février 2018
Statut
Membre
Dernière intervention
28 avril 2018

24 févr. 2018 à 23:21
Merci pour la réponse
Voici mon script, qui ne marche toujours pas d'ailleurs


if(!empty($_POST['user']) && !empty($_POST['password']))
{

$pseudo = $_POST['user'];
$password = $_POST['password'];


try {
$connexion = new PDO("mysql:host=$loalhost;dbname=Membres;charset=utf8", $user, $pass);
$connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (Exception $ex) {
echo 'probleme de connexion à la base de donnée<br>'.$ex->getMessage();
}


$dbase =$connexion->prepare( 'SELECT Pseudo, Password FROM User WHERE Pseudo="'.$pseudo.'" AND Password="'.$password.'"');

$dbase->execute();



if($resultat=$dbase->fetch())
{
echo '<br>Bonjour '.$resultat['Pseudo'];
}
else
{
echo '<br>Identifiants incorrect';
}
}
else {
echo '<br>Veillez remplir vos idenfiants';
}


Ici même quand les condition ne sont pas remplie le script affiche toujours Bonjour $resultat['Pseudo']
ce qui ne devrais pas être le cas si le mot de passe ou le pseudo ne correspond pas à seuls déjà stocké sur la base de données
0
yg_be
Messages postés
19556
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 juillet 2022
1 129 > Kowli_12
Messages postés
10
Date d'inscription
lundi 19 février 2018
Statut
Membre
Dernière intervention
28 avril 2018

25 févr. 2018 à 12:10
bonjour, veux-tu dire que, même quand le POST retourne un pseudo non existant, ton code affiche "bonjour" avec ce pseudo qui ne se trouve pas dans la base de données?
0
Kowli_12
Messages postés
10
Date d'inscription
lundi 19 février 2018
Statut
Membre
Dernière intervention
28 avril 2018
> yg_be
Messages postés
19556
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 juillet 2022

25 févr. 2018 à 23:34
Bonjour
OUI c'est exactement ça!
Même quand le POST envoie une valeur qui n'est pas dans la base, c'est toujours le code qui se trouve entre le IF qui est exécuté , pas le ELSE.
0
yg_be
Messages postés
19556
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 juillet 2022
1 129 > Kowli_12
Messages postés
10
Date d'inscription
lundi 19 février 2018
Statut
Membre
Dernière intervention
28 avril 2018

26 févr. 2018 à 09:23
peux-tu faire
print_r($resultat);
dans le if avec bonjour, et partager ce que cela affiche?
0
jordane45
Messages postés
35767
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 juillet 2022
4 200
24 févr. 2018 à 23:30
Déjà...La comparaison se fait avec 2 =
0
Kowli_12
Messages postés
10
Date d'inscription
lundi 19 février 2018
Statut
Membre
Dernière intervention
28 avril 2018

26 févr. 2018 à 19:10
Merci encore pour tes tuyaux qui m'a permit de voir l’erreur, en faite c'était au niveau de la base de données.
Je vous remercie vous deux d'avoir pris votre temps si précieux pour m’aiguillais
Je vais marquer comme résolu
0