-
Notifications
You must be signed in to change notification settings - Fork 2
/
login.php
executable file
·95 lines (88 loc) · 4.5 KB
/
login.php
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
session_start();
?>
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>ReSoC - Connexion</title>
<meta name="author" content="Julien Falconnet">
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<?php include('header.php'); ?>
<div id="wrapper" >
<aside>
<h2>Présentation</h2>
<p>Bienvenu sur notre réseau social.</p>
</aside>
<main>
<article>
<h2>Connexion</h2>
<?php
/**
* TRAITEMENT DU FORMULAIRE
*/
// Etape 1 : vérifier si on est en train d'afficher ou de traiter le formulaire
// si on recoit un champs email rempli il y a une chance que ce soit un traitement
$enCoursDeTraitement = isset($_POST['email']);
if ($enCoursDeTraitement)
{
// on ne fait ce qui suit que si un formulaire a été soumis.
// Etape 2: récupérer ce qu'il y a dans le formulaire @todo: c'est là que votre travaille se situe
// observez le résultat de cette ligne de débug (vous l'effacerez ensuite)
// echo "<pre>" . print_r($_POST, 1) . "</pre>";
// et complétez le code ci dessous en remplaçant les ???
$emailAVerifier = $_POST['email'];
$passwdAVerifier = $_POST['motpasse'];
//Etape 3 : Ouvrir une connexion avec la base de donnée.
$mysqli = new mysqli("localhost", "root", "root", "socialnetwork");
//Etape 4 : Petite sécurité
// pour éviter les injections sql : https://www.w3schools.com/sql/sql_injection.asp
$emailAVerifier = $mysqli->real_escape_string($emailAVerifier);
$passwdAVerifier = $mysqli->real_escape_string($passwdAVerifier);
// on crypte le mot de passe pour éviter d'exposer notre utilisatrice en cas d'intrusion dans nos systèmes
$passwdAVerifier = md5($passwdAVerifier);
// NB: md5 est pédagogique mais n'est pas recommandée pour une vraies sécurité
//Etape 5 : construction de la requete
$lInstructionSql = "SELECT * "
. "FROM users "
. "WHERE "
. "email LIKE '" . $emailAVerifier . "'"
;
// Etape 6: Vérification de l'utilisateur
$res = $mysqli->query($lInstructionSql);
$user = $res->fetch_assoc();
if ( ! $user OR $user["password"] != $passwdAVerifier)
{
echo "La connexion a échouée. ";
} else
{
echo "Votre connexion est un succès : " . $user['alias'] . "." .$user["id"];
// Etape 7 : Se souvenir que l'utilisateur s'est connecté pour la suite
// documentation: https://www.php.net/manual/fr/session.examples.basic.php
$_SESSION['connected_id']=$user['id'];
header('Location: wall.php?user_id=' . $user["id"]);
exit();
}
}
?>
<form action="login.php" method="post">
<input type='hidden'name='???' value='achanger'>
<dl>
<dt><label for='email'>E-Mail</label></dt>
<dd><input type='email'name='email'></dd>
<dt><label for='motpasse'>Mot de passe</label></dt>
<dd><input type='password'name='motpasse'></dd>
</dl>
<input type='submit'>
</form>
<p>
Pas de compte?
<a href='registration.php'>Inscrivez-vous.</a>
</p>
</article>
</main>
</div>
</body>
</html>