par
rononedex » 18 juin 2022, 21:05
Tu peut t'inspiré de ça, vire les message flash si ça t’intéresse pas
Une fois le lien activation cliquer :
Code : Tout sélectionner
$user_name = $_GET['username'];
$token = $_GET['token'];
$req = $db->prepare('SELECT * FROM users WHERE username = ?');
$req->execute([$user_name]);
$user = $req->fetch();
if($user && $user->confirmed_token == $token ){
$db->prepare('UPDATE users SET slug = "membre", activation = "1", confirmed_token = null, authorization = 2, confirmed_at = NOW() WHERE username = ?')->execute([$user_name]);
$_SESSION['auth'] = $user;
setFlash('<strong>Super !</strong> Votre compte a bien étais valider <strong>Bien jouer :)</strong>');
redirect('account');
}else{
setFlash('<strong>Ho ho!</strong> Ce token n\'est plus valide <strong>Logger vous ou inscriver vous</strong>','rouge');
redirect('error');
}
A la fin du script inscription tu peut faire ça le but et d’envoyer un mail a la fin avec un lien d'activation du compte, encore faut-il avoir le retour des mail en local moi j'ai rien donc j'utilise google... ou tu peut créer ça dans ton administration pour validé toi même
Code : Tout sélectionner
if(empty($error)){
$req = $db->prepare("INSERT INTO users SET username = ?, password = ?, email = ?, confirmed_token = ?, date_inscription = now()");
$password = password_hash($pass, PASSWORD_BCRYPT);
$token = str_random(60);
$req->execute([$username, $password, $_POST['email'], $token]);
$user_id = $db->lastInsertId();
$header="MIME-Version: 1.0\r\n";
$header.='From:"'.$_SERVER['HTTP_HOST'].'"<support@'.$_SERVER['HTTP_HOST'].'.com>'."\n";
$header.='Content-Type:text/html; charset="uft-8"'."\n";
$header.='Content-Transfer-Encoding: 8bit';
$message = '
<html>
<body>
<div align="center">
Pour valider votre compte merci de cliquer sur ce >> <a href="http://'.$_SERVER['HTTP_HOST'].'/confirm/'.urlencode($username).'/'.$token.'" target="_blank" >LIEN</a> <<
</div>
</body>
</html>
';
mail($_POST['email'], 'Confirmation de votre inscription',$message,$header);
setFlash('<strong>Super !</strong> Vous êtes bien inscrit reste a valider votre compte ! par Email');
redirect($router->generate('home'));
}
Tu peut t'inspiré de ça, vire les message flash si ça t’intéresse pas
Une fois le lien activation cliquer :
[code]
$user_name = $_GET['username'];
$token = $_GET['token'];
$req = $db->prepare('SELECT * FROM users WHERE username = ?');
$req->execute([$user_name]);
$user = $req->fetch();
if($user && $user->confirmed_token == $token ){
$db->prepare('UPDATE users SET slug = "membre", activation = "1", confirmed_token = null, authorization = 2, confirmed_at = NOW() WHERE username = ?')->execute([$user_name]);
$_SESSION['auth'] = $user;
setFlash('<strong>Super !</strong> Votre compte a bien étais valider <strong>Bien jouer :)</strong>');
redirect('account');
}else{
setFlash('<strong>Ho ho!</strong> Ce token n\'est plus valide <strong>Logger vous ou inscriver vous</strong>','rouge');
redirect('error');
}
[/code]
A la fin du script inscription tu peut faire ça le but et d’envoyer un mail a la fin avec un lien d'activation du compte, encore faut-il avoir le retour des mail en local moi j'ai rien donc j'utilise google... ou tu peut créer ça dans ton administration pour validé toi même
[code]
if(empty($error)){
$req = $db->prepare("INSERT INTO users SET username = ?, password = ?, email = ?, confirmed_token = ?, date_inscription = now()");
$password = password_hash($pass, PASSWORD_BCRYPT);
$token = str_random(60);
$req->execute([$username, $password, $_POST['email'], $token]);
$user_id = $db->lastInsertId();
$header="MIME-Version: 1.0\r\n";
$header.='From:"'.$_SERVER['HTTP_HOST'].'"<support@'.$_SERVER['HTTP_HOST'].'.com>'."\n";
$header.='Content-Type:text/html; charset="uft-8"'."\n";
$header.='Content-Transfer-Encoding: 8bit';
$message = '
<html>
<body>
<div align="center">
Pour valider votre compte merci de cliquer sur ce >> <a href="http://'.$_SERVER['HTTP_HOST'].'/confirm/'.urlencode($username).'/'.$token.'" target="_blank" >LIEN</a> <<
</div>
</body>
</html>
';
mail($_POST['email'], 'Confirmation de votre inscription',$message,$header);
setFlash('<strong>Super !</strong> Vous êtes bien inscrit reste a valider votre compte ! par Email');
redirect($router->generate('home'));
}
[/code]