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
| <!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
</head>
<body>
<h1>Activation de compte</h1>
Pour activer votre compte, merci de bien vouloir cliquer sur ce lien:
<a href="<?= 'localhost:8888/social_network/activation.php?p='.$pseudo.'&token='.$token?>">Lien d'activation</a>
</body>
</html>
le lien:
<html>
<?php
session_start();
require "config/database.php";
require "includes/fonctions.php";
//On vérifie que tous les paramètres sont présents
//Si ce n'est pas le cas, l'utilisateur est redirigé vers la page d'accueil
if(!empty($_GET['p']) && is_already_in_use('pseudo', $_GET['p'], 'users') && !empty($_GET['token'])){
$pseudo = $_GET['p'];
$token = $_GET['token'];
//le pseudonyme et le token sont-ils valides ?
$q = $db->prepare('SELECT mail, mdp FROM users WHERE pseudo = ?');
$q->execute([$pseudo]);
$data = $q->fetch(PDO::FETCH_OBJ);
$token_verif = sha1($pseudo.$data->mail.$data->mdp);
//Si le token est valide, nous activons le compte de l'utilisateur
//Dans le cas contraire, il est redirigé vers la page d'accueil avec un message d'erreur
if($token == $token_verif){
$q = $db->prepare("UPDATE users SET active ='1' WHERE pseudo = ?");
$q->execute([$pseudo]);
echo "Votre compte a été activé";
redirect('login.php');
} else {
echo "Pseudo et information de sécurité invalide !";
}
}?>
</html> |
Partager