jphilippev
Messages postés253Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention 5 décembre 2008
-
12 déc. 2007 à 15:44
cs_kamal32
Messages postés2Date d'inscriptionmardi 18 août 2009StatutMembreDernière intervention21 août 2009
-
21 août 2009 à 17:23
Bonjour,
J'ai un script qui donne entre autre ca :
function show_form($nom="",$pass="",$pass2="",$email="",$error="")
{
$page_inscription = "<form action=".$_SERVER["PHP_SELF"]. method="post"">";
$page_inscription .= "Merci de remplir le formulaire ci-dessous :
";
$page_inscription .= "Login désiré :
";
$page_inscription .= "Mot de passe :
";
$page_inscription .= "Confirmation du mot de passe :</td><td>
jphilippev
Messages postés253Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention 5 décembre 20081 12 déc. 2007 à 17:00
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:
[mailto:ne_pas_repondre@free.fr\n
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 = "Merci !
Vous devriez recevoir un e-mail à l'adresse suivante : ".$email.".
";
$page_confirmation .= "Veuillez confirmer l'inscription en cliquant sur le lien se trouvant sur le mail.
";
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 .= "Merci de remplir le formulaire ci-dessous :
";
$page_inscription .= "Login désiré :
";
$page_inscription .= "Mot de passe :
";
$page_inscription .= "Confirmation du mot de passe :</td><td>
//-------------------------------------------------------------------------------
// 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 : [mailto:ne_pas_repondre@free.fr\n 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 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 "".$page_validation."
";
}
voici la page en entier
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 12 déc. 2007 à 18:56
Et si tu remets show_form(), ça donne quoi? Parce que à première vue, il n'y a pas de raison pour que ton code plante de cette manière; show_form() a une syntaxe correcte.