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.
Merci à vous pour vos réponses.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Validation Secu</title>
<style type="text/css">
.validation {
background-color: #CCC;
height: 120px;
width: 300px;
margin-right: auto;
margin-left: auto;
text-align: center;
border-top-style: double;
border-right-style: double;
border-bottom-style: double;
border-left-style: double;
}
#valid {
height: 200px;
width: 300px;
}
</style>
<?php require ("config.php") ?>
</head>
<body>
<div class="validation" id="valid">
<?php
$page=$serveur.$_SERVER["PHP_SELF"];
$nom=$_POST["nom"];
$prenom=$_POST["prenom"];
$surnom=$_POST["surnom"];
$pass=$_POST["pass"];
$pass2=$_POST["pass2"];
$mail=$_POST["mail"];
$IP=$_SERVER['REMOTE_ADDR'];
$heure=time();
?>
<?php
//connection au serveur
$cnx = mysql_connect( "$db_host", "$db_user", "$db_pass" ) ;
//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><BODY>";
echo "<H2 align=center>Merci, $prenom </H2>";
echo "Un mail vous a été envoyé à cette adresse mail: <h3> $mail </h3>
vous devez cliquez sur le lien pour être définitivement enregistrer.</P>";
echo "</BODY></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 : <a href=\"".$_SERVER["PHP_SELF"]."\">here</a>.";
}
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 <a href=\"../".$page_redirection."\">ICI</a>.";
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 <a href=\"".$_SERVER["PHP_SELF"]."?code=".$code."&BL=2\">ici</a> 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 "<p>".$page_validation."</p>";
}
?>
</div>
</body>
</html>