Page 1 sur 2

Inscription/confirmation

Posté : 21 oct. 2011, 15:53
par saluttt
Bonjour je suis nouveau sur ce forum et un peu débutant en php, je suis en train de faire un site et j'aurais besoin d'aide .Je n'arriv pas à m'inscrire ou a activer un compte.Pas facile a expliquer pourriez vous me dire si il y a une erreur dans ce code, il s'agit de ma page d'inscription(page cible):
<?php


$mail = htmlentities($_POST['mail']);
$nom_site = "truk";

$base = mysql_connect () or die('Erreur de connexion '.mysql_error());
mysql_select_db('',$base) or die('Erreur de selection '.mysql_error());

// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['passwd']) && !empty($_POST['passwd'])) && (isset($_POST['passwdc']) && !empty($_POST['passwdc'])) && (isset($_POST['ville'])&& !empty($_POST['ville'])) && (isset($_POST['mail']) && !empty($_POST['mail'])))

{
$reponse = 'Un ou plusieurs champs ne sont pas remplis, <a href="javascript:history.back(1)">Retour au formulaire</a>';
}
elseif (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) //Verifie que l'email entrée n'est pas une fausse.
{
$chaine = "abcdefghijklmnopqrstuvwxyz0123456789";
$confirm = str_shuffle($chaine); //On créé le code de confirmation

$login = htmlentities($_POST['login']); //On recupère les infos
$passwd = htmlentities($_POST['passwd']);
$passwdc = htmlentities($_POST['passwdc']);
$ville = htmlentities($_POST['ville']);



/*On Fait la variable contenant le mail de confirmation*/

$message1 = '<html><body>Bonjour ' . $login . ' et bienvenue sur ' .$nom_site. '.</br>';
$message1 .= '</br>';
$message1 .= 'Vous venez de vous inscrire et nous sommes heureux<br>de pouvoir vous compter aujourd\'hui parmi nos membres.<br>';
$message1 .= 'Voici un rappel de vos identifiants, notez les précieusement : <br>';
$message1 .= 'Votre Pseudo :' . $login .'.<br>';
$message1 .= 'Votre Mot de passe:' . $passwd .'.<br><br>';
$message1 .= 'Votre Mail:' . $mail .'.<br><br>';
$message1 .= 'Votre Ville:' . $ville .'.<br><br>';
$message1 .= 'Si vous souhaitez changer vos informations, rendez-vous dans votre compte pour les mettre à jour.<br>';
$message1 .= 'Votre Clé d\'activation:<br>';
$message1 .= 'www.truk.com/confirm.php?login=' . str_replace(' ','%20',$login) . '&confirm=' . $confirm . '<br><br>';
$message1 .= 'A très bientôt sur le site!<br>L\'équipe de ' .$nom_site. '.<br><a href="/index.php">' .$nom_site. '</a>';



$verification = mysql_query("SELECT COUNT(*) FROM pdf_membre WHERE login='$login' OR mail='$mail'") or die (mysql_error());
$donnees = mysql_fetch_array($verification)or die (mysql_error());




if($donnees['COUNT(*)'] >= 1) //On verifie que le pseudo n'existe pas déjà
{
$reponse = 'Le pseudo ou l\'email est déjà utilisé, merci d\'en choisir un(e) autre. <a href="javascript:history.back(1)">Retour au formulaire</a>';
}
elseif( $passwd != $passwdc) //On verifie que les 2 pass sont identiques
{
$reponse = 'Les mots de passe ne sont pas identiques, <a href="javascript:history.back(1)">Retour au formulaire</a>';
}
else //Si tout est bon on entre les données dans la BDD et on envoye le mail
{
mysql_query("INSERT INTO pdf_membre VALUES ('','$login', '$passwd', '$mail', '$confirm', '$ville')");
$reponse2 = 'Bravo, vous êtes maintenant inscrit sur ' .$nom_site. '. <br>Vous allez recevoir un e-mail pour activer votre compte. <br><a href="/index.php">Retour à l\'Accueil</a>';
$entete = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: <$email_admin>\r\n";
$entete .= "Reply-To: $email_admin\r\n";
mail($mail,'Bienvenue sur ' .$nom_site. ' ' . $login .'.' , $message1, $entete);
}
}

mysql_close($base); //On se deconnecte





?>

<html>
<body>
<?php echo $reponse2; ?> <!-- On affiche la reponse de tout le code du dessus -->
</body>
</html>

Re: Inscription/confirmation

Posté : 21 oct. 2011, 16:01
par saluttt
et ca ma page de confirmation d'inscription:
<?
require("conf.php3"); //Comme d'ab Je ne sais pas a quoi sert cette ligne

$base = mysql_connect ('') or die('Erreur de connexion '.mysql_error());
mysql_select_db('',$base) or die('Erreur de selection '.mysql_error());

$search = 'SELECT COUNT(*) as nb FROM pdf_membre WHERE login = "'.addslashes($_GET['login']).'" AND confirm = "'.addslashes($_GET['confirm']).'"';
$req = mysql_query($search) or die(mysql_error()); //On recupère les infos qui seront dans l'url et on efface la chaine de caractère qui empeche le membre de ce connecter
$data = mysql_fetch_array($req);

if($data['nb'] == 1)
{
$login = $_GET['login'];
mysql_query("UPDATE pdf_membre SET `confirm`='' WHERE `login` ='$login'") or die('erreur : '.mysql_error());

echo '<p>Votre compte à bien été créé.</p>';
echo '<p>Pour retournez à la page d\'accueil cliquez <a href="/index.php">ici</a>.</p>';
}
else //S'il ne retrouve pas le pseudo il affichera le message suivant
{
echo '<p>Un problème est survenu, il est possible que vous ne soyez pas inscrit ou que l\'adresse est fausse ou que vous êtes déjà validé !.</p>';
}
mysql_close($base);
?>

Re: Inscription/confirmation

Posté : 21 oct. 2011, 18:36
par soycd
Tu peux utiliser les balises php du forum pour mettre en forme ton code :wink:

Il se situe à quel niveau le problème ?
Le mail est bien envoyé ?

Re: Inscription/confirmation

Posté : 22 oct. 2011, 19:26
par besoin_daide
<?php


$mail = htmlentities($_POST['mail']);
$nom_site = "truk";

$base = mysql_connect () or die('Erreur de connexion '.mysql_error());
mysql_select_db('',$base) or die('Erreur de selection '.mysql_error());

// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['passwd']) && !empty($_POST['passwd'])) && (isset($_POST['passwdc']) && !empty($_POST['passwdc'])) && (isset($_POST['ville'])&& !empty($_POST['ville'])) && (isset($_POST['mail']) && !empty($_POST['mail'])))

{
$reponse = 'Un ou plusieurs champs ne sont pas remplis, <a href="javascript:history.back(1)">Retour au formulaire</a>';
}
elseif (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) //Verifie que l'email entrée n'est pas une fausse.
{
$chaine = "abcdefghijklmnopqrstuvwxyz0123456789";
$confirm = str_shuffle($chaine); //On créé le code de confirmation

$login = htmlentities($_POST['login']); //On recupère les infos
$passwd = htmlentities($_POST['passwd']);
$passwdc = htmlentities($_POST['passwdc']);
$ville = htmlentities($_POST['ville']);



/*On Fait la variable contenant le mail de confirmation*/

$message1 = '<html><body>Bonjour ' . $login . ' et bienvenue sur ' .$nom_site. '.</br>';
$message1 .= '</br>';
$message1 .= 'Vous venez de vous inscrire et nous sommes heureux<br>de pouvoir vous compter aujourd\'hui parmi nos membres.<br>';
$message1 .= 'Voici un rappel de vos identifiants, notez les précieusement : <br>';
$message1 .= 'Votre Pseudo :' . $login .'.<br>';
$message1 .= 'Votre Mot de passe:' . $passwd .'.<br><br>';
$message1 .= 'Votre Mail:' . $mail .'.<br><br>';
$message1 .= 'Votre Ville:' . $ville .'.<br><br>';
$message1 .= 'Si vous souhaitez changer vos informations, rendez-vous dans votre compte pour les mettre à jour.<br>';
$message1 .= 'Votre Clé d\'activation:<br>';
$message1 .= 'www.truk.com/confirm.php?login=' . str_replace(' ','%20',$login) . '&confirm=' . $confirm . '<br><br>';
$message1 .= 'A très bientôt sur le site!<br>L\'équipe de ' .$nom_site. '.<br><a href="/index.php">' .$nom_site. '</a>';



$verification = mysql_query("SELECT COUNT(*) FROM pdf_membre WHERE login='$login' OR mail='$mail'") or die (mysql_error());
$donnees = mysql_fetch_array($verification)or die (mysql_error());




if($donnees['COUNT(*)'] >= 1) //On verifie que le pseudo n'existe pas déjà
{
$reponse = 'Le pseudo ou l\'email est déjà utilisé, merci d\'en choisir un(e) autre. <a href="javascript:history.back(1)">Retour au formulaire</a>';
}
elseif( $passwd != $passwdc) //On verifie que les 2 pass sont identiques
{
$reponse = 'Les mots de passe ne sont pas identiques, <a href="javascript:history.back(1)">Retour au formulaire</a>';
}
else //Si tout est bon on entre les données dans la BDD et on envoye le mail
{
mysql_query("INSERT INTO pdf_membre VALUES ('','$login', '$passwd', '$mail', '$confirm', '$ville')");
$reponse2 = 'Bravo, vous êtes maintenant inscrit sur ' .$nom_site. '. <br>Vous allez recevoir un e-mail pour activer votre compte. <br><a href="/index.php">Retour à l\'Accueil</a>';
$entete = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: <$email_admin>\r\n";
$entete .= "Reply-To: $email_admin\r\n";
mail($mail,'Bienvenue sur ' .$nom_site. ' ' . $login .'.' , $message1, $entete);
}
}

mysql_close($base); //On se deconnecte





?>
<html>
<body>
<?php echo $reponse2; ?> <!-- On affiche la reponse de tout le code du dessus -->
</body>
</html>

Re: Inscription/confirmation

Posté : 22 oct. 2011, 19:27
par besoin_daide
et ca ma page de confirmation d'inscription:
<?
require("conf.php3"); //Comme d'ab Je ne sais pas a quoi sert cette ligne

$base = mysql_connect ('') or die('Erreur de connexion '.mysql_error());
mysql_select_db('',$base) or die('Erreur de selection '.mysql_error());

$search = 'SELECT COUNT(*) as nb FROM pdf_membre WHERE login = "'.addslashes($_GET['login']).'" AND confirm = "'.addslashes($_GET['confirm']).'"';
$req = mysql_query($search) or die(mysql_error()); //On recupère les infos qui seront dans l'url et on efface la chaine de caractère qui empeche le membre de ce connecter
$data = mysql_fetch_array($req);

if($data['nb'] == 1)
{
$login = $_GET['login'];
mysql_query("UPDATE pdf_membre SET `confirm`='' WHERE `login` ='$login'") or die('erreur : '.mysql_error());

echo '<p>Votre compte à bien été créé.</p>';
echo '<p>Pour retournez à la page d\'accueil cliquez <a href="/index.php">ici</a>.</p>';
}
else //S'il ne retrouve pas le pseudo il affichera le message suivant
{
echo '<p>Un problème est survenu, il est possible que vous ne soyez pas inscrit ou que l\'adresse est fausse ou que vous êtes déjà validé !.</p>';
}
mysql_close($base);
?>

Re: Inscription/confirmation

Posté : 22 oct. 2011, 19:29
par besoin_daide
oui le message est bien envoyé mais il m'affiche,quand je clique sur le mail de confirmation ce qu'il y a dans le code de la page de confirmation, le pseudo n'est pas retrouvé...(vers la fin dans le script de la page confirm)

Re: Inscription/confirmation

Posté : 22 oct. 2011, 19:44
par Ryle
S'il t'affiche le message d'erreur, c'est que $data['nb'] n'est pas égal à 1 ... affiche la requête que tu génères, et regarde si elle est correcte et ce qu'elle retourne quand tu l'exécutes directement sur mysql :)

Re: Inscription/confirmation

Posté : 22 oct. 2011, 20:04
par besoin_daide
merci ryle mais je suis débutant , donc comment je fais?:)

Re: Inscription/confirmation

Posté : 22 oct. 2011, 20:20
par besoin_daide
en fait il ne m'affiche rien du tout quand j'ai rempli les champs et que je valide l'inscription, il devrait normalement ecrire un mail de confirmation vient de vous etre envoyer ....

Re: Inscription/confirmation

Posté : 22 oct. 2011, 20:22
par moogli
tu ne connais pas echo ?

donc echo $search; pour afficher la requête et voir si elle correspond à ce que tu attends.

Après tu peux utiliser la console mysql ou phpmyadmin (voir sur google pour plus d'info).

Tu devrais utiliser mysql_real_escape_string pour protèger tes requetes.

Le code que tu indique n'affiche pas de message indiquant l'envoi d'un mail ...

@+

Re: Inscription/confirmation

Posté : 22 oct. 2011, 20:46
par besoin_daide
j'ai bien compris tout ca, mon site est deja en ligne.......
mais il n'affiche rien car il y a une erreur quuelque part mais je ne sais pas ou

Re: Inscription/confirmation

Posté : 22 oct. 2011, 21:25
par Ryle
Et si tu remplaces ta balises initiale " <? " par un " <?php " ?

Re: Inscription/confirmation

Posté : 23 oct. 2011, 00:00
par besoin_daidee
ca y est ca marche :)
juste une autre question:
en dessous du script,on m'a dit de mettre
session_start();
require("conf.php3"); je n'ai pas compris a quoi sert la 2eme ligne(ni la première dailleurs vu que l'utilisateur ne peut etre logué puisqu'il n'est pas inscrit..)

Re: Inscription/confirmation

Posté : 23 oct. 2011, 14:10
par moogli

Re: Inscription/confirmation

Posté : 23 oct. 2011, 16:47
par besoin_daidee
require ok mais je vulais savoir ce qu'était conf.php3 et a quoi ca servait?