Bonjour a tous,
je souhaiterais valider les informations d'un utilsateur qui se connecte avec son adresse email et son mot de passe. Et pour cela j'ai une page login.php et loggedin.php.
si l'utilisateur est connecte, alors login.php me redirige vers loggedin.php (qui signale a l'utilisateur qu'il est bien connecte). Si un utilisateur accede a la page loggedin.php par erreur alors il est redirige vers la page index1.php (page d'accueil).
pour cela , j'ecris les deux fichiers a inclure suivants:
pour l'affichage du formulaire et des erreurs:
le seond fichier a inclure est le suivant:
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 <?php $page_title='Login'; include('includes/header.html'); if (!empty($errors)) { echo '<h1> Error !</h1> <p class = "error"> The following error(s) occured : <br />'; foreach ($errors as $msg) { echo " - $msg <br /> \n"; } echo '</p><p> Please try again. </p>'; } ?> <h1>Login</h1> <form action="login.php" method="post"> <p>Email Address: <input type="text" name="email" size="20" maxlength="80" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>" /> </p> <p>Password: <input type="password" name="pass" size="10" maxlength="20" /></p> <p><input type="submit" name="submit" value="Login" /></p> <input type="hidden" name="submitted" value="TRUE" /> </form> <?php include ('includes/footer.html'); ?>
Ensuite j'ai ma page login.php:
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 <?php function absolute_url($page='index1.php'){ $url='http://' .$_SERVER['HTTP_POST'] . dirname($_SERVER['PHP_SELF']); $url=rtrim($url, '/\\'); $url .= '/' . $page; return $url; } function check_login($dbc, $email='', $pass=''){ $errors=array(); if (empty($email)){ $errors[]='You forgot to enter your email address.'; } else { $e= mysqli_real_escape_string($dbc,trim ($email)); } if (empty ($pass)){ $errors[]= 'Your forgot to enter your password.'; } else { $p=mysqli_real_escape_string($dbc, trim ($pass)); } if (empty($errors)){ $q="SELECT user_id, first_name FROM users WHERE email='$e' AND pass=SHA1('$p')"; $r=@mysqli_query($dbc, $q); if (mysqli_num_rows($r) == 1){ $row=mysqli_fetch_array($r, MYSQLI_ASSOC); return array(true, $row); } else { $errors[]='The email address and password entered do not match those on file.'; } } return array(false, $errors); } ?>
et la page loggedin.php:
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 <?php if (isset($_POST['submitted'])){ require_once('includes/login_functions.inc.php'); require_once('../PHP-TESTS/mysqli_connect.php'); list($check, $data)=check_login($dbc, $_POST['email'], $_POST['pass']); if ($check){ setcookie('user_id', $date['user_id']); setcookie('first_name', $date['first_name']); $url=absolute_url('loggedin.php'); header("Location: $url"); exit(); } else { $errors=$data; } mysqli_close($dbc); } include ('includes/login_page.inc.php'); ?>
Dans mon navigateur, je saisie l'adresse email et le mot de passe d'un utilisateur. une fois que je clique sur login j'ai l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php if (!isset($_COOKIE['user_id'])){ require_once('includes/login_functions.inc.php'); $url=absolute_url(); header("Location: $url"); exit(); } $page_title='Logged In!'; include('includes/header.html'); echo "<h1>Logged In!</h1> <p>You are now logged in, {$_COOKIE['first_name']}!</p> <p><a href=\"logout.php\">Logout</a></p>"; include ('includes/footer.html'); ?>
Qu'est ce qui s'est passe?Cannot find "http://localhost/PHP-TESTS/login.php"
DNS Error - Server cannot be found
Merci.
Billyrose
Partager