Bonjour,
Je viens de passer tout mon site de MySQL à PDO et c'est très satisfaisant, entre autre pour tout ce qui est gestion de l'utf8 !
Je galère cependant depuis un moment sur le formulaire de connexion avec une connexion qui ne veut pas se faire.
Le message d'erreur est "Le nom d'utilisateur ou le mot de passe est incorrect.".
À la tentative de connexion, le var_dump() retourne "int(0)".
Je ne maîtrise pas du tout la partie mot de passe et peut-être que ça vient de là...
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 <?php // Constantes de connexion à la BDD define("DBHOST", "localhost"); define("DBUSER", "root"); define("DBPASS", ""); define("DBNAME", "..."); // DSN de connexion (pour PDO) $dsn = "mysql:dbname=".DBNAME.";host=".DBHOST; error_reporting(E_ALL); ini_set("display_errors", 1); // Connexion à la base de données try{ // On instancie PDO $bdd = new PDO($dsn, DBUSER, DBPASS); // On s'assure que les données sont envoyées en UTF8 $bdd->exec("SET NAMES utf8"); // On définit le mode de "fetch" par défaut, ici on choisit le tableau associatif // (non obligatoire, évite de préciser lors de la récupération des données) $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); }catch(PDOException $e){ die($e->getMessage()); } require('header.php'); if(isset($_POST['formconnexion'])) { $userconnect = htmlspecialchars($_POST['user']); $pwdconnect = sha1($_POST['password']); if(!empty($userconnect) AND !empty($pwdconnect)) { $requser = $bdd->prepare("SELECT * FROM 0_users WHERE username = :user AND password = :pwd"); $requser->execute(array(':user' => $userconnect, ':pwd' => $pwdconnect)); $userexist = $requser->rowCount(); var_dump($userexist); if($userexist == 1) { $userinfo = $requser->fetch(); $_SESSION['username'] = $userinfo['username']; header("location: accounting.php"); } else { $erreur = "Le nom d'utilisateur ou le mot de passe est incorrect."; } } else { $erreur = "Tous les champs doivent être complétés !"; } } ?> <form class="box" action="" method="post" name="login"> <h1 class="box-logo box-title"><img src="images/logo.png" alt=""></h1> <br> <input type="text" class="box-input" name="user" placeholder="Nom d'utilisateur"> <input type="password" class="box-input" name="password" placeholder="Mot de passe"> <input type="submit" value="Connexion " name="formconnexion" class="box-button"> <?php if(!empty($message)){ ?> <p class="errorMessage"><?php echo $message; ?></p> <?php } ?> </form> <hr style="height:2px;border-width:0;color:gray;background-color:orangered"> <?php require('footer.php'); ?>
Une idée ?
Merci pour votre temps !
Goo
Partager