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>
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);
?>
<?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>
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);
?>