Bonjour,
je m'initie à php et mysql à l'aide de ce livre : "Développer un site web en PHP, MySQL et Javascript: jQuery, CSS3 et HTML5." isbn 978-2-89377-547-0
Arrivé au chap12 sur l'authentification, je tombe sur des scripts qui ne fonctionne pas ou du moins comme annoncé.
Ce n'est pas une faute de frappe de ma part, j'utilise les fichiers fournis par l'éditeur, que j'ai téléchargé sur mon hébergement chez ovh.
Voici le code en question :
Que j'entre un bon ou mauvais login/pw, je n'obtiens pas l'affichage de la phrase prévue, mais il me réaffiche systématique la fenêtre de demande de login/pw. Seul le fait de cliquer sur "annuler" affiche la phrase prévue "Entrez votre nom d'utilisateur et votre mot de passe pour vous identifier".
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
42
43
44
45
46
47
48
49
50
51 <?php // authentification.php require_once 'login.php'; $connexion = new mysqli($hn, $un, $pw, $db); if ($connexion->connect_error) die($connexion->connect_error); if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) { $nu_temp = mysql_entities_fix_string($connexion, $_SERVER['PHP_AUTH_USER']); $mp_temp = mysql_entities_fix_string($connexion, $_SERVER['PHP_AUTH_PW']); $query = "SELECT * FROM utilisateurs WHERE nomutil='$nu_temp'"; $result = $connexion->query($query); if (!$result) die($connexion->error); elseif ($result->num_rows) { $row = $result->fetch_array(MYSQLI_NUM); $result->close(); $sel1 = "qm&h*"; $sel2 = "pg!@"; $jeton = hash('ripemd128', "$sel1$mp_temp$sel2"); if ($jeton == $row[3]) echo "$row[0] $row[1] : Bonjour $row[0], vous êtes connecté en tant que '$row[2]'"; else die("Nom d'utilisateur ou mot de passe non valide"); } else die("Nom d'utilisateur ou mot de passe non valide"); } else { header('WWW-Authenticate: Basic realm="Zone restreinte"'); header('HTTP/1.0 401 Unauthorized'); die ("Entrez votre nom d'utilisateur et votre mot de passe pour vous identifier"); } $connexion->close(); function mysql_entities_fix_string($connexion, $string) { return htmlentities(mysql_fix_string($connexion, $string)); } function mysql_fix_string($connexion, $string) { if (get_magic_quotes_gpc()) $string = stripslashes($string); return $connexion->real_escape_string($string); } ?>
J'ai testé php 5.4 5.6 et 7.2, cela ne change rien.
Où se situe le problème svp ?
Partager