Formulaire d'inscription de membre auteur Krozone

Résolu
DCO2 Messages postés 56 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 3 avril 2006 - 29 nov. 2005 à 19:04
DCO2 Messages postés 56 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 3 avril 2006 - 30 nov. 2005 à 22:25
Bonjour,

J'ai téléchargé et mis sur mon site le formulaire d'inscription de Krozone.

L'installation s'est bien déroulée. mais j'ai le probléme suivant::

Lorsque j'ouvre la page sécurisée, il faut que je mette mon login et mot de passe ou bien que je m'inscrive jusque là OK, je m'inscrit OK, je recois l'email de confirmation OK.
Mais lorsque je clique sur le lien de confirmation ce message apparait:
Ce code n'existe pas, est expiré ou à déjà été validé, veuillez remplir à nouveau le formulaire : ICI.
Et la table "users" de la bd est vide.

D'où vient le problème.
Merci pour votre aide.

12 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
30 nov. 2005 à 15:43
$query = "INSERT INTO boutique_users VALUES
('$nom',$prenom,$n_adherent,$adresse,$ville,$cp,$fixe,$portable,'$pass','$uniqueid','en_attente','$email','$heure','$IP')";

la ville est une chaîne non ? de même que le prenom et l'adresse donc essaie ça :

$query = "INSERT INTO boutique_users VALUES
('$nom','$prenom',$n_adherent,'$adresse',$ville,$cp,$fixe,$portable,'$pass','$uniqueid','en_attente','$email','$heure','$IP')";

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
3
cs_Mizuka Messages postés 66 Date d'inscription jeudi 4 août 2005 Statut Membre Dernière intervention 16 décembre 2009
29 nov. 2005 à 19:12
Bonsoir,



Alors déjà que la table 'users' qoit vide, je pense que ça peut
s'expliquer par le fait que l'enregistrement se fait après la
confirmation, or si elle marche pas pas d'enregistrement.



Par contre pourquoi ça marche pas. Je sais pas :(



Mizuka
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
29 nov. 2005 à 19:15
Salut,

sans code et sans structure de table on va avoir du mal à t'aider...

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
DCO2 Messages postés 56 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 3 avril 2006
29 nov. 2005 à 21:13
Re bonjour et merci pour vos réponse.

Pour répondre à Misuka effectivement l'enregistrement se fait à la validation par le mail.

la table est structureé comme ceci:
<?
require "../connect.inc";
$query ="CREATE TABLE `users` (
`userid` varchar(20) NOT NULL default '',
`prenom` varchar(20) NOT NULL default '',
`n_adherent` varchar(20) NOT NULL default '',
`adresse` varchar(20) NOT NULL default '',
`ville` varchar(20) NOT NULL default '',
`cp` varchar(20) NOT NULL default '',
`fixe` varchar(20) NOT NULL default '',
`portable` varchar(20) NOT NULL default '',
`password` varchar(20) NOT NULL default '',
`uniqueid` varchar(100) NOT NULL default '',
`level` varchar(20) NOT NULL default '',
`email` varchar(100) NOT NULL default '',
`heure` int(100) NOT NULL default '0',
`IP` varchar(15) NOT NULL default '',
PRIMARY KEY (`userid`)
) TYPE=MyISAM;";


mysql_query($query);

?>

et le formulaire de validation:
<html>
<head>
<title>Enregistrement</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="identification.css" />

</head>

<?php
require "inscription.php";
if (isset($_POST["email"]))
{
// Verification et envoi du mail de confirmation
inscription();
}
else if(isset($_GET["code"]))
{
// Verification du code et blacklistage si besoin
code_check($_GET["code"],$_GET["BL"]);
}
else
{
// Formaulaire d'enregistrement
show_form();
}
?>

</html>

avec le formulaire d'incription:
//------------------------------------------------------
// 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";
$page=$serveur.$_SERVER["PHP_SELF"];
$nom=$_POST["nom"];
$prenom=$_POST["prenom"];
$n_adherent=$_POST["n_adherent"];
$adresse=$_POST["adresse"];
$ville=$_POST["ville"];
$cp=$_POST["cp"];
$fixe=$_POST["fixe"];
$portable=$_POST["portable"];
$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 boutique_users WHERE uniqueid='$uniqueid'");
}
while(false!=($ligne = mysql_fetch_array($resultat)));


// Vérification diverses et variées.
if($nom=="" || $prenom=="" || $n_adherent=="" || $adresse=="" || $ville=="" || $cp=="" || $fixe=="" || $portable=="" || $pass=="" || $pass2=="" || $email==""){show_form($nom,$prenom,$n_adherent,$adresse,$ville,$cp,$fixe,$portable,$pass,$pass2,$email,'Certains champs ne sont pas remplis !');die();} // Tous les champs doivent être remplis
if($pass!=$pass2){show_form($nom,$prenom,$n_adherent,$adresse,$ville,$cp,$fixe,$portable,$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 boutique_users WHERE userid='$nom'");
if(false!=($ligne = mysql_fetch_array ($resultat))){show_form($nom,$prenom,$n_adherent,$adresse,$ville,$cp,$fixe,$portable,$pass,$pass2,$email,"Le membre (".$nom.") existe déjà");die();} // Si le login est déjà pris
$resultat = mysql_query("SELECT * FROM boutique_users WHERE email='$email' AND level='blacklist'");
if(false!=($ligne = mysql_fetch_array ($resultat))){show_form($nom,$prenom,$n_adherent,$adresse,$ville,$cp,$fixe,$portable,$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@adgcp-63.com\n ne_pas_repondre@adgcp-63.com\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 boutique_users VALUES ('$nom',$prenom,$n_adherent,$adresse,$ville,$cp,$fixe,$portable,'$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,$prenom,$n_adherent,$adresse,$ville,$cp,$fixe,$portable,$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 .= "Nom :

";
$page_inscription .= "Prénom :

";
$page_inscription .= "N° Adhérent :

";
$page_inscription .= "Adresse :

";
$page_inscription .= "Ville :

";
$page_inscription .= "Code Postal :

";
$page_inscription .= "Téléphone Fixe :

";
$page_inscription .= "Téléphone Portable :

";
$page_inscription .= "Mot de passe :

";
$page_inscription .= "Confirmation du mot de passe :</td><td>

";
$page_inscription .= "E-mail :

";
$page_inscription .= "

";
$page_inscription .= "".$error."

";
$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";



$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 boutique_users WHERE heure<$heure2 AND level='en_attente'");


// On extrait la personne qui souhaite valider son inscription
$uniqueid=$code;$resultat mysql_query("SELECT * FROM boutique_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 formulaire : [mailto:ne_pas_repondre@adgcp-63.com\n ne_pas_repondre@adgcp-63.com\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 boutique_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."

";
}

Exusez si le code est long et merci pour votre aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
29 nov. 2005 à 21:30
pfiou..... que c'est long. Tu peux nous le condenser un peu stp ? merci

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
DCO2 Messages postés 56 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 3 avril 2006
30 nov. 2005 à 11:04
Condensé ce code n'est pas facile car tout se tient. Si j'en enlève un bout cela ne voudra rien dire.

Et c'est bien à la vallidation que cela ne marche pas et je ne trouve pas ou est l'erreur.

Merci de votre aide et de votre patience.
0
cs_Mizuka Messages postés 66 Date d'inscription jeudi 4 août 2005 Statut Membre Dernière intervention 16 décembre 2009
30 nov. 2005 à 18:11
En même temps, pour toutes les variables mets des '. C'est plus sûr.

Par contre le script est pas structuré y a des gros tas, donc la flemme de décortiquer ^^
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
30 nov. 2005 à 19:07
c'est plus sûr mais pas indispensable si t'as des types numériques, m'enfin ouais de toute façon je pense pas que ça ralentisse quoi que çe soit ;-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
DCO2 Messages postés 56 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 3 avril 2006
30 nov. 2005 à 22:08
Bonjour à tous,

La solution a été donné par Anthomicro Effectivement j'avais ouoblié de mettre les quotes au bon endroi maintenant ça marche. Je vous en remercie beaucoup.
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
30 nov. 2005 à 22:14
Tu aurais rajouter ' or die( mysql_error() );' et tu aurais eu une erreur de parse :)
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
30 nov. 2005 à 22:19
DC02 > en général on valide la ou les réponses qui t'ont aidé à résoudre ton problème, pas ta réponse...

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
DCO2 Messages postés 56 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 3 avril 2006
30 nov. 2005 à 22:25
Milles excuses je recommence et encore merci pour votre aide.
0
Rejoignez-nous