stephelle
Messages postés56Date d'inscriptionmercredi 14 septembre 2011StatutMembreDernière intervention 7 octobre 2012
-
15 déc. 2011 à 08:16
stephelle
Messages postés56Date d'inscriptionmercredi 14 septembre 2011StatutMembreDernière intervention 7 octobre 2012
-
15 déc. 2011 à 14:15
Bonjour, j'ai créer mon formulaire qui part vers ma page de "validation". Celle-ci écrit dans la table et en même temps envoi un mail à la personne qui vient de s'inscrire avec un lien pour valider définitivement. Le lien est du time_md5. Le problème est que quand les gens clic sur le lien, ils tombent sur la page 404 alors qu'il y a bien la fonction dans la page.
//sélection de la base de données:
$db = mysql_select_db( "$db" ) ;
// transformation du mot de passe simple en mot de passe crypté.
$pass_md5=(md5('pass'));
//code unique
$uniqueid=md5(time());
//création de la requête SQL:
$sql = "INSERT INTO membre (nom, prenom, surnom, pass_md5, mail, IP, heure, uniqueid)
VALUES ('$nom', '$prenom', '$surnom', '$pass_md5','$mail', '$IP', '$heure', '$uniqueid') " ;
//exécution de la requête SQL:
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
// Attendre qu'il n'y ait pas d'autres utilisateur avec le même numéro.
do
{
$uniqueid=md5(time());
$resultat = mysql_query("SELECT * FROM membre WHERE uniqueid='$uniqueid'");
}
while(false!=($ligne = mysql_fetch_array($resultat)));
?>
<?php //On créée le message email
$subject = "Veuillez confirmer votre inscription";
$headers = "From: ".$adresse_webmaster."\n";
$message .= "Bonjour ".$surnom."\n\n";
$message .= "Vous avez reçu ce mail parce que cette adresse mail a été enregistré sur le site de ".$site_name.".\n";
$message .= "Pour valider cet inscription, cliquez sur ce lien :\n ".$page."?code=".$uniqueid."&BL=0 \n";
$message .= "Si vous ne vous êtes pas inscrit sur ".$site_name.", veuillez ignorer ce message et accepter nos excuses.\n";
$message .= "Vous pouvez aussi choisir d'ajouter votre mail à notre blacklist pour être importuné de notre part en cliquant sur ce lien :\n ".$page."?code=".$uniqueid."&BL=1 \n";
$message .= "Cordialement,\n";
$message .= "Stéphane";
$recipient = "".$mail.""; //On met l'adresse email ou on veut recevoire le mail
mail($recipient, $headers, $subject, $message); // message confirmation que le mail a bien été envoyé
echo "<HTML><HEAD>";
echo "<TITLE>Formulaire envoyer!</TITLE></HEAD>";
echo "Merci, $prenom
";
echo "Un mail vous a été envoyé à cette adresse mail: $mail
vous devez cliquez sur le lien pour être définitivement enregistrer.
";
echo "</HTML>";
?>
<?php
// Fonction de vérification de l'adresse de confirmation
// - Suppression des utilisateurs n'ayant pas confirmer avant la durée impartie
// - Extraction de la personne concernée
// - Validation de son enregistrement
// - Si l'on veut être blacklisté, après confirmation on effectue le blacklistage
// - Le webmaster recoit un mail lorsque l'inscription est validé
function code_check($code="",$BL="")
{
require "config.php";
$heure=time();
// On profite de l'occasion pour supprimer les users n'ayant pas confirmé dans la durée impartie
$heure2=$heure-$validite;
mysql_query("DELETE FROM membre WHERE heure<$heure2 AND enregistrer='en_attente'");
// On extrait la personne qui souhaite valider son inscription
$uniqueid=$code;
$resultat mysql_query("SELECT * FROM membre WHERE uniqueid'$uniqueid' AND enregistrer='en_attente'");
if(false==($ligne = mysql_fetch_array ($resultat)))
{
mysql_close();
$page_validation = "Ce code n'existe pas, est expiré ou à déjà été validé, veuillez remplir à nouveau le formaulaire : here.";
}
else
{
// Si l'utilisateur vient pour confirmer, on passe son enregistrer de "en_attente" à "registered"
if($BL==0)
{
mysql_query("UPDATE membre SET enregistrer='registered' WHERE uniqueid ='$uniqueid' AND enregistrer='en_attente'");
$page_validation = "Merci, vous êtes maintenant enregistré ! Vous pouvez maintenant vous connectez librement ICI.";
if ($mail_controle==1)
{
$subject="Nouvelle inscription sur $site_name";
$message="Bonjour,\n\n";
$message.="Un nouveau membre vient de s'inscrire :\n";
$message.="Nom : ".$ligne["userid"]."\n";
$message.="E-Mail : ".$ligne["email"]."\n";
$headers="From: ne_pas_repondre@free.fr\n";
@mail($adresse_webmaster, $subject, $message, $headers);
}
}
// Si l'utilisateur vient pour être blacklisté, on passe son level de "en_attente" à "blacklist"
// Mais avant une petite confirmation
if($BL==1)
{
$page_validation = "Vous souhaitez ajouter votre adresse mail à notre blackliste. Cliquez ici pour que vous puissiez confirmer.";
}
// Si l'utilisateur a confirmé qu'il veut être dans la liste noire, on l'y met
if($BL==2)
{
mysql_query("UPDATE membre SET enregistrer='blacklist' WHERE uniqueid ='$uniqueid' AND enregistrer='en_attente'");
$page_validation = 'Votre e-mail a été blacklisté. Vous ne receverez plus aucun e-mail de notre part.';
}
mysql_close();
}
echo "".$page_validation."
cod57
Messages postés1653Date d'inscriptiondimanche 7 septembre 2008StatutMembreDernière intervention11 septembre 201319 15 déc. 2011 à 14:05
bonjour
peux tu détailler que veux tu faire
ce code fait parti d'un fichier ou plusieurs
nommer les parties s.t.p.
je crois que $uniqueid=md5(time()); écrase à chaque fois la valeur du départ
stephelle
Messages postés56Date d'inscriptionmercredi 14 septembre 2011StatutMembreDernière intervention 7 octobre 2012 15 déc. 2011 à 14:15
cette page envoi un mail à la personne qui vient de s'inscrire avec un lien à l'intérieur. Il doit cliquer sur le lien pour terminer de s'enregistrer.
j'ai la page "inscription" qui envoi vers cette page "validation".