bien sur :)
<?
//------------------------------------------------------
// Fonction Inscription
// - Attribution d'une id unique
// - Tous les champs doivent être remplis
// - Les deux champs passwords doivent être identiques
// - Les champs ne doivent pas contenir d'apostrophe
// - Le login ne doit pas déjà exister
// - Le mail ne doit pas être dans la blackliste
// - Envoi d'un mail avec une adresse de confirmation
//------------------------------------------------------
function inscription()
{
require "connect.inc.php";
$page=$serveur.$_SERVER["PHP_SELF"];
$nom=$_POST["nom"];
$pass=$_POST["pass"];
$pass2=$_POST["pass2"];
$email=$_POST["email"];
$IP=$_SERVER['REMOTE_ADDR'];
$heure=time();
// Attendre qu'il n'y ait pas d'autres user avec le même numéro de session.
do
{
$uniqueid=md5(time());
$resultat = mysql_query("SELECT * FROM users WHERE uniqueid='$uniqueid'");
}
while(false!=($ligne = mysql_fetch_array($resultat)));
// Vérification diverses et variées.
if($nom=="" || $pass=="" || $pass2=="" || $email==""){show_form($nom,$pass,$pass2,$email,'Certains champs ne sont pas remplis !');die();} // Tous les champs doivent être remplis
if($pass!=$pass2){show_form($nom,$pass,$pass2,$email,'Le mot de passe et la confirmation sont différents.');die();} // Le mot de passe et la confirmation doivent être identiques
if(!(!strrpos($_POST["nom"], "'") && !strrpos($_POST["pass"], "'") && !strrpos($_POST["email"], "'"))){show_form($nom,$pass,$pass2,$email,'Ne pas utiliser de caractères spéciaux');die();} // Eviter les failles SQL
$resultat = mysql_query("SELECT * FROM users WHERE userid='$nom'");
if(false!=($ligne = mysql_fetch_array ($resultat))){show_form($nom,$pass,$pass2,$email,"Le membre (".$nom.") existe déjà");die();} // Si le login est déjà pris
$resultat = mysql_query("SELECT * FROM users WHERE email='$email' AND level='blacklist'");
if(false!=($ligne = mysql_fetch_array ($resultat))){show_form($nom,$pass,$pass2,$email,"L'adresse e-mail (".$email.") est blacklistée. Utilisez une autre adresse mail.");die();} // Si l'e-mail est dans la blacklist
$subject = "Veuillez confirmer votre inscription";
$headers = "From:
ne_pas_repondre@free.fr\n
";
$message = "Veuillez confirmer votre inscription\n";
$message .= "Bonjour ".$nom."\n\n";
$message .= "Vous avez reçu ce mail parce que vous ou quelqu'un d'autre utilisant votre adresse mail s'est enregistré sur le site ".$site_name.".\n";
$message .= "Pour valider cet inscription, cliquez sur ce lien :\n ".$page."?code=".$uniqueid."&BL=0 \n";
$message .= "Si vous vous n'ê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 ne plus recevoir de mail d'inscription de notre part en cliquant sur ce lien :\n ".$page."?code=".$uniqueid."&BL=1 \n";
$message .= "Votre e-mail a été envoyé de l'IP ".$IP.".\n\n";
$message .= "Cordialement,\n";
$message .= "Le Webmaster";
// Envoi du mail
if(@mail($email, $subject, $message, $headers))
{
$query = "INSERT INTO users VALUES ('$nom','$pass','$uniqueid','en_attente','$email','$heure','$IP')"; // On ajoute le membre à la liste avec le status en attente
mysql_query($query);
mysql_close();
$page_confirmation = "<p>Merci !</p><p>Vous devriez recevoir un e-mail à l'adresse suivante : ".$email.".</p>";
$page_confirmation .= "<p>Veuillez confirmer l'inscription en cliquant sur le lien se trouvant sur le mail.</p>";
echo $page_confirmation;
}
else
{
show_form($nom,$pass,$pass2,$email,"Le mail de confirmation n'a pu être envoyé. Peut-être que l'adresse n'est pas valide. Veuillez contacter le webmaster s'il vous plait.");
}
}
//------------------------------------------------------
// Fonction Formulaire
// - Retourne le formulaire avec les messages d'erreurs
//------------------------------------------------------
function show_form($nom="",$pass="",$pass2="",$email="",$error="")
{
$page_inscription = "<form action=\"".$_SERVER["PHP_SELF"]."\" method=\"post\">";
$page_inscription .= "<p>Merci de remplir le formulaire ci-dessous :</p>";
$page_inscription .= "<p>Login désiré :</p><p><input type=\"text\" name=\"nom\" size=\"20\" maxlength=\"20\" value=\"".$nom."\" /></p>";
$page_inscription .= "<p>Mot de passe :</p><p><input type=\"password\" name=\"pass\" size=\"20\" maxlength=\"20\" value=\"".$pass."\" /></p>";
$page_inscription .= "<p>Confirmation du mot de passe :</td><td><input type=\"password\" name=\"pass2\" size=\"20\" maxlength=\"20\" value=\"".$pass2."\" /></p>";
$page_inscription .= "<p>E-mail :</p><p><input type=\"text\" name=\"email\" size=\"20\" maxlength=\"100\" value=\"".$email."\" /></p>";
$page_inscription .= "<p><input type=\"submit\" value=\"S'inscrire\" /></p>";
$page_inscription .= "<p style=\"color:#ff0000;font-weight:bold;\">".$error."</p>";
$page_inscription .= "</form>";
echo $page_inscription;
}
//-------------------------------------------------------------------------------
// 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 "connect.inc.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 users WHERE heure<$heure2 AND level='en_attente'");
// On extrait la personne qui souhaite valider son inscription
$uniqueid=$code;
$resultat = mysql_query("SELECT * FROM users WHERE uniqueid ='$uniqueid' AND level='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 level de "en_attente" à "registered"
if($BL==0)
{
mysql_query("UPDATE users SET level='registered' WHERE uniqueid ='$uniqueid' AND level='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 users SET level='blacklist' WHERE uniqueid ='$uniqueid' AND level='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>";
}
voici la page en entier
merci