mysql_query('UPDATE ta_table SET verif=1 WHERE code='.intval($_GET['code']));
mysql_query('UPDATE ta_table SET verif=1 WHERE code='.intval($_GET['code']));
Si le numéro de code ne correspond à rien la requête va échouer et l'update ne sera pas fait et le compte ne sera pas activé. // Génère un string aléatoire, de longueur length
function randomString($length) {
$string = "";
$chaine = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";
srand((double)microtime()*1000000);
for($i=0; $i<$length; $i++) {
$string .= $chaine[rand()%strlen($chaine)];
}
return $string;
}
// Envoi un mail
function sendMail($to, $sujet, $message) {
require 'vars.php';
$sendMailError = 0;
$headers = "From: no-reply@".$siteDomain."\r\n".
"MIME-Version: 1.0\r\n".
"Content-type: text/html; charset=iso-8859-1";
if(!mail($to, $sujet, $message, $headers))
$sendMailError = 1;
return $sendMailError;
}
Envoi du mail :
// Envoi du mail
$message = "Bonjour ".$_REQUEST['login'].",<br /><br />\n\n";
$message .= "Merci de vous etre enregistré sur ".$siteName.".<br /><br />\n\n";
$message .= "Pour activer votre compte, cliquez sur le lien suivant <br />\n";
$message .= "(ou copiez-le dans la barre d'adresse de votre navigateur, si celui-ci n'est pas cliquable) :<br /><br />\n\n";
$message .= "<a href=".$siteURL."/index.php?page=activate&login=".$_REQUEST['login']."&key=".$activationKey.">".$siteURL."/index.php?page=activate&login=".$_REQUEST['login']."&key=".$activationKey."</a><br /><br />\n\n";
$message .= "Cordialement,<br />\n";
$message .= "L'équipe ".$siteName;
$sendMailError = sendMail($_REQUEST['mail'], 'Activation de votre compte '.$siteName, $message);
if($sendMailError == 1) {
echo '<div class="msgNo">Une erreur est survenue lors de l\'envoi de l\'e-mail d\'activation.
<a href="mailto:'.$adminMail.'" class="normal-brown-underline">Contactez l\'administrateur</a>.</div>';
}
else {
echo '<div class="msgYes">Félicitations ! Votre compte vient d\'être crée. Un mail vient d\'être envoyé à
l\'adresse que vous avez fournie. Pour activer votre compte, cliquez sur le lien qu\'il contient.</div>';
}
Mon script d'activation :
<?php
// On verifie que le login correspond a la key
$login = isset($_REQUEST['login']) ? stripgpc($_REQUEST['login']) : '';
if(!empty($login)) {
$sql = sprintf("SELECT user_activation_key, user_activated FROM ".$cfg_prefixe."users WHERE user_login = '%s'", mysql_real_escape_string($login));
$query = mysql_query($sql) or die(mysql_error());
$result = mysql_fetch_array($query);
if($result['user_activated'] == 1)
echo '<div class="msgNo">Votre compte est déjà activé.</div>';
elseif($result['user_activation_key'] == $_REQUEST['key']) {
$sql = sprintf("UPDATE ".$cfg_prefixe."users SET user_activated = 1 WHERE user_login = '%s'", mysql_real_escape_string($login));
$query = mysql_query($sql) or die(mysql_error());
echo '<div class="msgYes">Votre compte vient d\'être activé. Merci de vous être enregistré sur '.$siteDomain.'.</div>';
include 'mod.authForm.php';
}
else {
echo '<div class="msgNo">Votre clé d\'activation est erronée.
<a href="mailto:'.$adminMail.'" class="normal-brown-underline">Contactez l\'administrateur</a>.</div>';
}
}
?>
Passes quelques minutes à comprendre le code, et bidouilles le si besoin. Tu devrai pouvoir t'en sortir avec ça.
La champ "verif" de table a une valeur 0 par défaut. Si tu regardes bien la requête, le UPDATE change cette valeur à 1 si le code correspond.Et ca fait quoi de cliquer dessus? je comprend pas trop en quoi ca valide l'inscription.
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 28 invités