Tutoriel PHP – Créer un espace membre #2 – Formulaire de connexion

Bienvenue dans le second tutoriel de la série consacrée à la réalisation d’un espace membre en PHP. Aujourd’hui, nous allons réaliser le formulaire et le système de connexion.

Création du formulaire

Comme d’habitude, il nous faut pour commencer créer le formulaire HTML. Nous allons pour cela reprendre le formulaire de la partie inscription et le modifier légèrement.

<form method="POST" action="">

	<table>

		<tr>
			<td>
				<label>Votre Email :</label>
			</td>
			<td>
				<input type="email" name="email">
			</td>
		</tr>

		<tr>
			<td>
				<label>Votre mot de passe :</label>
			</td>
			<td>
				<input type="password" name="password">
			</td>
		</tr>

		<tr><td></td></tr>

		<tr>
			<td></td>
			<td>
				<button type="submit" name="confirm_login">Se connecter</button>
			</td>
		</tr>

	</table>

</form>

 

Vérification des données

Attaquons nous au traitement PHP ! Dans un premier temps, il nous faut vérifier les données entrées par l’utilisateur. On va vérifier qu’elles soient bien envoyées et qu’elles ne soient pas vides. Si ces conditions ne sont pas respectées, on retourne une erreur.

 

Interaction avec la base de données

On peut ensuite sécuriser nos variables et préparer une requête SQL. On cherche ici à récupérer tous les utilisateurs qui possèdent le même email et le même mot de passe que ceux entrés dans le navigateur.

Attention à ne pas oublier le cryptage du mot de passe !

<?php

$email = htmlspecialchars($_POST['email']);
$password = htmlspecialchars($_POST['password']);

$req = $bdd->prepare("SELECT * FROM users WHERE email = ? AND password = ?");
$req->execute(array($email, sha1($password)));

?>

 

Si la requête a trouvé un utilisateur, on récupère ses données dans une variable $user. et on la stocke dans une variable de session.  Si ce n’est pas le cas, on dit à l’utilisateur qu’il y a une erreur d’email ou de mot de passe.

Pour récupérer le nombre de lignes retournées, on utilise la méthode rowCount() sur la requête.

<?php

	if($req->rowCount() == 1) {

		$user = $req->fetch();
		$_SESSION['user'] = $user;

	} else {
		
		$error = "Nom d'utilisateur ou mot de passe incorrect";
		
	}

?>

 

Icon téléchargements

Partagez cette vidéo !

Leave Comment