JeuWeb - Crée ton jeu par navigateur
Inscription avec validation par email - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Inscription avec validation par email (/showthread.php?tid=76)



Inscription avec validation par email - dad - 20-08-2006

page 1 ;le formulaire d inscription :nomme(inscription.php)

Code PHP :
<?php 
<td width="800px" valign="top" align="center">
<
div id="centre">
<
p>
Choisissez votre pseudo pour jouer a ton site Les autres utilisateurs vous reconnaîtront par votre pseudonyme.
veuillez a bien remplir touts les chants, est a avoir une adresse e-mail valide pour recevoir la confirmation
de votre inscription et ainci pouvoir validez votre partit
.
il suffit de remplire ce formulaire et de cliqué sur "envoyer",
et a la reception de votre e_mail de cliquez sur le lien pour valider votre partit.</p>
<
br/>
<
br/>
<
br/>
<
form action="traitement_inscription.php" method="post">
<
fieldset>
<
legend>Infos obligatoires</legend>
<
table>
<
tr><td>votre Pseudo(pas d espace) :</td><td><input type="text" name="pseudo" size="9"/></td></tr>
<
tr><td>votre Mot de passe(pas d espace) :</td><td><input type="password" name="password" size="9"/></td></tr>
<
tr><td>Confirmer votre mot de passe :</td><td><input type="password" name="confirm_password" size="9"/></td></tr>
<
tr><td>votre e_Mail :</td><td><input type="text" name="mail" size="15"/></td></tr>
</
table>
<
p>pour validez votre inscription vous accepter <a href="introduction.php">ce reglement</a></p><!--la page introduction.php est la page du reglement de ton site-->
<
br/>
<
input type="checkbox" name="conditions" /><big> J'ai lu et j'accepte les conditions générales d'utilisation de ton site .</big><br/>
<input type="checkbox" name="newsletter"/><big> Je souhaite recevoir la newletter dans ma boite mail .</big><br/>
</fieldset>
<br/>
<fieldset>
<legend>Infos personelles</legend>
<table>
<tr><td>votre Pays :</td><td width="170"><input type="text" name="pays" size="15" value="france"/></td><td>
votre Sexe :_ <input type="radio" name="sexe" value="masculin"/> masculin <input type="radio" name="sexe" value="feminin"/> feminin </td></tr>
<tr><td>votre Ville(pas d espace) :</td><td width="170"><input type="text" name="ville" size="15" value=" "/></td><td>
votre Date de naissance(pas d espace) :</td><td width="170"><input type="text" name="date_naissance" size="15" value=" "/></tr>
</table>
</fieldset><br/>

<br/>
<input type="submit" value="envoyer"/>
</form>
</div>

page 2 ; traitement de l inscription avec les verifications nommeSadtraitement_inscription.php)

dabord la connection nomme Sadpcdb.php)mi dans le dossier nomee (connection sql)

Code PHP :
<?php
// paramètres de connexion
$hote = "localhost";
$utilisateur = " root";
$mdp = " pass";//mot de pass

// choix de la base et table
$data_base = "localhost";//nom de la bdd
$table_cp = "comptes_provisoirs";//nom table provisoirs
$table_cd = "membre";//nom table membre
?>

maintenant la page de traitement

Code PHP :
<?php
$nb_faux
= 0;
if (isset(
$_POST['pseudo']) && isset($_POST['password']) && isset($_POST['confirm_password']) && isset($_POST['mail']))
{
$pseudo = htmlentities(addslashes($_POST['pseudo']));
$password = htmlentities(addslashes($_POST['password']));
$confirm_password = htmlentities(addslashes($_POST['confirm_password']));
$mail = $_POST['mail'];
// incrémenter la variable $nb_faux si les champs du formulaire sont vides
if (empty($_POST['pseudo']) || empty($_POST['password']) || empty($_POST['confirm_password']) || empty($_POST['mail']))
{
?><font color="red"><big>Champs non remplis</big></font><br/><?php
$nb_faux
++;
}
// incrementer la variable $nb_faux si des caracteres ne sont pas autorisés pour le pseudo
if (!preg_match('`^(\w{4,15})$`', $pseudo))
{
?><font color="red"><big>Caractères non autorisés pour le pseudo</big></font><br/><?php
$nb_faux
++;
}
// incrementer la variable $nb_faux si des caracteres ne sont pas autorisés pour le mot de passe et sa confirmation
if (!preg_match('`^(\w{4,15})$`', $password) or !preg_match('`^(\w{4,15})$`', $confirm_password ))
{
?><font color="red"><big>Caractères non autorisés pour le mot de passe</big></font><br/><?php
$nb_faux
++;
}
// incrementer la variable $nb_faux si le mot de passe et la confirmation du mot de passe ne sont pas les meme
if ($password != $confirm_password)
{
?><font color="red"><big>le mot de pass ne corepond pas</big></font><br/><?php
$nb_faux
++;
}
// incrementer la variable $nb_faux si le pseudo existe dans la base de donnée
if ($nb_faux >= 0)
{
include(
"connection sql/pcdb.php");
$connexion = mysql_connect($hote, $utilisateur, $mdp) or die('<br/>Connexion au serveur impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
$choix_base = mysql_select_db($data_base, $connexion) or die('<br/>Sélection de la base de donnée echouée.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
$requete = ("SELECT pseudo FROM $table_cd WHERE pseudo='$pseudo'");
$resultat = mysql_query($requete) or die('<br/>Exécution de la requête impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
$ligne = mysql_fetch_array($resultat);
if (
$pseudo == $ligne['pseudo'])
{
?><font color="red"><big>Ce pseudo existe déja sur ce site</big></font><br/><?php
$nb_faux
++;
}
}
// incrémenter la variable $nb_faux si la case à cocher "conditions" est null
if (isset($_POST['conditions']) == null)
{
?><font color="red"><big>Conditions non coché</big></font><br/><?php
$nb_faux
++;
}
// affectation de la chaine "oui" ou "non" dans une variable pour la newsletter
if (isset($_POST['newsletter']) != null)
{
$newsletter = "oui";
}
else
{
$newsletter = "non";
}
if (isset(
$_POST['pays']) || isset($_POST['ville']) || isset($_POST['sexe']) || isset($_POST['date_naissance']))
{
$pays = htmlentities(addslashes($_POST['pays']));
$ville = htmlentities(addslashes($_POST['ville']));
$sexe = htmlentities(addslashes($_POST['sexe']));
$date_naissance1 = ($_POST['date_naissance']);
}
// connexion à la base de donnée si il n'y a pas d'erreur (champs oubliés, expressions régulirères, vérification de mot de passe, vérification du pseudo)
if ($nb_faux == 0)
{
include(
"connection sql/pcdb.php");
// affecter un nombre aléatoire dans la variable clef qui servira a la validation du compte par mail
$clef = "0123456789";
$clef = rand();
// requette envoi les données de l utilisateur dans la table comptes_provisoirs
$connexion = mysql_connect($hote, $utilisateur, $mdp) or die('<br/>Connexion au serveur impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
$choix_base = mysql_select_db($data_base, $connexion) or die('<br/>Sélection de la base de donnée echouée.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
$requete = ("INSERT INTO $table_cp VALUES('','$pseudo','$password','$mail','$newsletter','$pays','$ville','$sexe','$date_naissance1','$clef')");
$resultat = mysql_query($requete) or die('<br/>Exécution de la requête impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
mysql_close($connexion);
// Envoyer le mail si la requête à fonctionnée
if ($resultat == true)
{
?><font color="green"><big>Vous allez reçevoir un mail pour la validation de votre compte</big></font><br/><?php

$mail_destinataire
= $_POST['mail'];
$sujet = "jeu, validation de l'inscription sur ton site";
$message = "Cet email a été envoyé à partir de http://www.tonsite.com .
Petit rappel de tes identifiants
Ton pseudo est:
$pseudo
Ton mot de passe est:
$password
Cet email nous permet de verifier que ton adresse mail est correct, ce afin de prevenir du spam et des abus.
Clique sur le lien ci dessous afin de valider ton inscription :
http://www.tonsite.com/ traitement_validation_inscription.php ?pseudo=
$pseudo&clef=$clef //pas d espace dans le lien

Si a tout hasard tu ne t'etais pas inscrit sur ce site, merci de nous contacter a : blabla.@free.fr

L equipe de ton site"
;
$head = "Bonjour $pseudo ";
mail($mail_destinataire, $sujet, $message, $head);
}
}
}
?>

page 3 ; traitement de la validation de lien de validation de l email

dabord la connection nomme(connection_sql.inc.php) mi dans le dossier nomee (connection sql)

Code PHP :
<?php
mysql_connect
("localhost", "root", "pass");
mysql_select_db("bdd");
?>

Code PHP :
<?php 
function redirect($url)
{
die(
'<meta http-equiv="refresh" content="0;URL='.$url.'">');
};
//--------------------------------------------------------------------
// VALIDATION DU COMPTE APRES INSCRIPTION
// Verification du lien de validation via mail :
// 1 - connexion si la clef et le pseudo existe dans la table "comptes_provisoirs"
// 2 - transfert des données dans la table "comptes_definitifs"+les donnees nessesaire au autre table de la bdd
// 3 - suppression des données dans la table "comptes_provisoirs"
//--------------------------------------------------------------------
include "connection sql/connection_sql.inc.php";
if(isset(
$_GET['pseudo']) && (isset($_GET['clef'])))
{
// requette chercher les données lorsque le champs pseudo et le champs clef existent dans la table "comptes_provisoirs"
$pseudo= ($_GET['pseudo']);
$clef= ($_GET['clef']);
}
$reponse= mysql_query ("SELECT pseudo,password,mail,newsletter,pays,ville,sexe,date_naissance FROM comptes_provisoirs WHERE pseudo='$pseudo' AND clef= '$clef'");
$donnees= mysql_fetch_array($reponse);
// affecter les infos utilisateurs si la clef et le pseudo existent dans la table "comptes_provisoirs"
$pseudo1= ($donnees['pseudo']);
$password1= ($donnees['password']);
$mail1= ($donnees['mail']);
$newsletter1= ($donnees['newsletter']);
$pays1= ($donnees['pays']);
$ville1= ($donnees['ville']);
$sexe1= ($donnees['sexe']);
$date_naissance1= ($donnees['date_naissance']);
$timtpamp=''.time();//date d aujourd hui
$timtpamp2= $timtpamp+604800;//date de 7 jour plus tard

// requette transferer les données de la table "comptes_provisoirs" à la table "comptes_definitifs"et insert des pseudo dans chaque table
mysql_query("INSERT INTO membre VALUES
//exemple de champs mettre le nombre de vos champ a vous avec les valeur qui corespond('','
$pseudo1','0','0','','$password1','$mail1','$newsletter1','$date_naissance1',
'
$sexe1','$ville1','$pays1','$timtpamp','200000','$timtpamp','$timtpamp2','$timtpamp','$timtpamp2','$timtpamp','$timtpamp2',
'0','1','0','0','0','0','0','0','','0','
$timtpamp','$timtpamp','0','','0','100','0','100','0','100','0','100','0','100',0,'100','0','100','0','100',
'0','100','0','100','0','','','','0','0','
$timtpamp','$timtpamp','$timtpamp','$timtpamp2')");
//mettre tout les requettes d insert into de tout les tables que votre base de donnees possede avec les pseudo et les valeur pour le demarage de //chaque joueur (a vous de voir)
mysql_query("DELETE FROM comptes_provisoirs WHERE clef = '$clef' AND pseudo = '$pseudo1'"); // requette suppression des données provisoir de la table "comptes_provisoirs"
mysql_close();
echo
'<font color="green"><big>compte validé</big></font><br/>';
redirect("accueil journalier.php");
exit();
?>

pour la table comptes_provisoirs voila de quoi la construire

mettre sa dans un fichier et par easyphp allez dans longler sql pour faire la requete vous faite parcourir ou est votre fichier puit executer votre table se construiras toute seul
sinon si tu est sur un serveur heberger tu vas dans le php myadmin de ton serveur et tu fait pareille parcourir ou est votre fichier puit executer

Code PHP :
<?php 
include "connection sql/connection_sql.inc.php";
CREATE TABLE `comptes_provisoirs` (
`
id` int(11) NOT NULL auto_increment,
`
pseudo` varchar(33) NOT NULL default '',
`
password` varchar(50) NOT NULL default '',
`
mail` varchar(60) NOT NULL default '',
`
newsletter` text NOT NULL,
`
pays` varchar(20) NOT NULL default '',
`
ville` varchar(50) NOT NULL default '',
`
sexe` varchar(10) NOT NULL default '',
`
date de naissance` date NOT NULL default '0000-00-00',
`
clef` tinyint(30) NOT NULL default '0',
KEY `id` (`id`)
)
TYPE=MyISAM AUTO_INCREMENT=2 ;
mysql_close();

tout a eter verifier et fonctionne a 100%

dad


RE: inscription avec validation par email - orditeck - 20-08-2006

L'aide pour ce script ce trouve à cette adresse :
http://www.jeuweb.org/board/showthread.php?tid=124