Bonjour,
Je débute en php. En parcourant différents forum, j'ai fais un formulaire d'inscription qui fonctionne correctement et que voici.
cependant, mon formulaire de connexion ne fonctionne pas. Il ne doit pas s'agir de grand chose, mais je ne comprends pas l'erreur... .
Code : 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 <?php $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=fonctions', 'root', '', $pdo_options); $erreurs = []; if(empty($_POST['pseudo'])) { $erreurs[] = 'Veuillez entrer un pseudo'; } else { $stmt = $bdd->prepare('SELECT COUNT(*) FROM abonnes WHERE pseudo = :pseudo'); $stmt->execute(['pseudo' => $_POST['pseudo']]); if ($stmt->fetchColumn()) { $erreurs[] = 'Ce pseudo est déjà utilisé'; } } if(empty($_POST['mdp'])) { $erreurs[] = 'Veuillez entrer un mot de passe'; } elseif($_POST['mdp'] != $_POST['mdp_confirm']) { $erreurs[] = 'mots de passes différents '; } if(empty($_POST['mail'])) { $erreurs[] = 'Veuillez entrer un mail'; } elseif($_POST['mail'] != $_POST['mail_confirm']) $erreurs[] = 'les deux adresses emails sont différentes '; if ($erreurs) { echo '<ul><li>', implode('</li><li>', $erreurs), '</li></ul>'; } else { $req = $bdd->prepare('INSERT INTO abonnes(pseudo, mdp, mail) VALUES(:pseudo, :mdp, :mail)'); $req->execute([ 'pseudo' => $_POST['pseudo'], 'mdp' => $_POST['mdp'], 'mail' => $_POST['mail'], ]); header('Location: inscription.php'); } ?>
pourriez-vous m'aider?
Code : 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 <?php $fail = FALSE; if ('POST' == $_SERVER['REQUEST_METHOD']) { require('shared.php'); $stmt = $bdd->prepare('SELECT * FROM abonnes WHERE pseudo = :pseudo'); $stmt->execute(['pseudo' => $_POST['pseudo']]); if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { if (password_verify($_POST['mdp'], $row['mot_de_passe'])) { session_start(); $_SESSION['id'] = $row['id']; if (password_needs_rehash($row['mot_de_passe'], $password_options['algo'], $password_options['options'])) { $stmt = $bdd->prepare('UPDATE abonnes SET mot_de_passe = :new_hash WHERE id = :id'); $stmt->execute(['id' => $row['id'], 'new_hash' => password_hash($_POST['mdp'], $password_options['algo'], $password_options['options'])]); } header('Location: index.php'); exit; } else { $fail = TRUE; } } else { $fail = TRUE; } } ?>
merci d'avance
Partager