par
AB » 14 mai 2011, 22:25
Merci de ta réponse.
Et dans la page inscription.php, il y a des choses a rajouter ?
$verification = mysql_query("SELECT COUNT(*) FROM pdf_membre WHERE pseudo='$pseudo' OR mail='$mail'") or die (mysql_error());
$donnees = mysql_fetch_array($verification)or die (mysql_error());
if($donnees['COUNT(*)'] >= 1)
à remplacer par
$verification = mysql_query("SELECT COUNT(*) as nb FROM pdf_membre WHERE pseudo='$pseudo' OR mail='$mail'") or die (mysql_error());
$donnees = mysql_fetch_array($verification)or die (mysql_error());
if($donnees['nb'] >= 1)
L'affichage des erreurs est un peu laborieuse avec javascript
echo "<script>alert(\"Votre pseudo est déjà pris !\")</script>";
echo '<script language="Javascript">document.location.replace("javascript:history.back(1)");</script>';
avec cette méthode tu ne pourras afficher qu'une erreur à la fois. Il serait plus optimisé d'enregistrer les erreurs dans un tableau php puis de faire afficher ce tableau en php.
Du genre :
<?php
session_start(); //On demarre une session parce que j'ai envi ^^
require("conf.php3"); //On insert le fichier qui contient les informations
if (isset($_POST['envoyer']))
{
$chaine = "abcdefghijklmnopqrstuvwxyz0123456789";
$confirm = str_shuffle($chaine); //On créé le code de confirmation
$mail = htmlentities($_POST['mail']);
$pseudo = htmlentities($_POST['pseudo']); //On recupère les infos
$mdp = htmlentities($_POST['mdp']);
$verif_mdp = htmlentities($_POST['verif_mdp']);
$nom = htmlentities($_POST['nom']);
$prenom = htmlentities($_POST['prenom']);
$pays = htmlentities($_POST['pays']);
$website = htmlentities($_POST['website']);
$born = htmlentities($_POST['born']);
$sexe = htmlentities($_POST['sexe']);
/*On Fait la variable contenant le mail de confirmation*/
$message1 = '<html><body><img src="http://www.web-astronomie.com/images/entete-mail.png"></br><br>';
$message1 .= '<font face="Tahoma" color="#3b5998" size="2">Bonjour<b> ' . $prenom . ' ' . $nom . ' </b>et bienvenue sur<b> ' .$nom_site. '</b></br>';
$message1 .= 'Toute l\'équipe de Web Astronomie vous remercie de votre inscription.<br><br>';
$message1 .= 'Vos identifiants (conserver les précieusement) : <br>';
$message1 .= '</br>';
$message1 .= 'Votre pseudo : <b>' . $pseudo .'</b><br>';
$message1 .= 'Votre mot de passe : <b>' . $mdp .'</b><br>';
$message1 .= '</br>';
$message1 .= 'Votre profil : </br>';
$message1 .= '</br>';
$message1 .= 'Votre mail : <b>' . $mail .'</b></br>';
$message1 .= 'Votre nom : <b>' . $nom .'</b><br>';
$message1 .= 'Votre prenom : <b>' . $prenom .'</b><br>';
$message1 .= 'Votre sexe : <b>' . $sexe .'</b></br>';
$message1 .= 'Votre pays : <b>' . $pays .'</b><br>';
$message1 .= 'Votre date de naissance : <b>' . $born .'</b><br><br>';
$message1 .= 'Pour modifier vos infos, rendez-vous dans votre compte<br>';
$message1 .= '</br>';
$message1 .= 'Cliquez sur le lien ci-dessous pour activer votre compte :</br>';
$message1 .= '</br>';
$message1 .= '<a href="http://www.web-astronomie.com/confirm.php?login=' . str_replace(' ','%20',$pseudo) . '&confirm=' . $confirm . '">';
$message1 .= 'Cliquez ici pour activer</a>';
$message1 .= '</br></br>';
$message1 .= 'Nous vous remercions de votre fidélité<br>';
$message1 .= 'L\'équipe de <b>Web Astronomie</b></font></body></html>';
$sql = connect_sql(); //On se connecte à MySQL
$verification = mysql_query("SELECT COUNT(*) FROM pdf_membre WHERE pseudo='$pseudo' OR mail='$mail'") or die (mysql_error());
$donnees = mysql_fetch_array($verification)or die (mysql_error());
$info_formulaire = array();
if($donnees['nb'] >= 1) //On verifie que le pseudo ou le mail n'existe pas déjà
{
$info_formulaire[] ="Votre pseudo est déjà pris !";
}
if( empty($pseudo) || empty($mdp) || empty($verif_mdp) || empty($mail) || empty($nom) || empty($prenom) || empty($born) || empty($sexe)) //On verifie que les variables précédentes ne soient pas vide
{
$info_formulaire[] ="Un ou plusieurs champs ne sont pas remplis !";
}
if( $mdp != $verif_mdp) //On verifie que les 2 pass sont identiques
{
$info_formulaire[] ="Le deux mots de passe ne sont pas identiques !";
}
if (!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.
{
$info_formulaire[] ="Votre adresse email n\'est pas correcte !";
}
if(isset($info_formulaire) && count($info_formulaire) == 0)
{
mysql_query("INSERT INTO pdf_membre VALUES ('','$pseudo', '$mdp', '$mail', '$confirm', '$nom', '$prenom', '$pays', '$born', '$website', '$sexe')");
$info_formulaire[] ="Félicitation, vous êtes maintenant inscrit sur Web Astronomie ! Vous allez recevoir un email pour activer votre compte";
$entete = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: Web Astronomie <$email_admin>\r\n";
$entete .= "Reply-To: $email_admin\r\n";
mail($mail,'Bienvenue sur ' .$nom_site. ' ' . $login .'' , $message1, $entete);
mysql_close($sql); //On se deconnecte
}
}
?>
<form action="#" method="post">
<div>
...
Homme : <input type="radio" name="sexe" value="1" />
Femme : <input type="radio" name="sexe" value="2" />
...
<input type = "submit" name = "envoyer" value = "Envoyer" />
</div>
</form>
<?php if (isset($info_formulaire) && count($info_formulaire) > 0)
{
foreach ($info_formulaire as $value) echo '<p>- '.$value.'</p>';
}
?>
Tu trouves pas ça plus simple ?
[quote="nicolas17550"]Merci de ta réponse.
Et dans la page inscription.php, il y a des choses a rajouter ?[/quote]
[php]$verification = mysql_query("SELECT COUNT(*) FROM pdf_membre WHERE pseudo='$pseudo' OR mail='$mail'") or die (mysql_error());
$donnees = mysql_fetch_array($verification)or die (mysql_error());
if($donnees['COUNT(*)'] >= 1)[/php]
à remplacer par
[php]$verification = mysql_query("SELECT COUNT(*) as nb FROM pdf_membre WHERE pseudo='$pseudo' OR mail='$mail'") or die (mysql_error());
$donnees = mysql_fetch_array($verification)or die (mysql_error());
if($donnees['nb'] >= 1)[/php]
L'affichage des erreurs est un peu laborieuse avec javascript
[php]echo "<script>alert(\"Votre pseudo est déjà pris !\")</script>";
echo '<script language="Javascript">document.location.replace("javascript:history.back(1)");</script>';[/php]
avec cette méthode tu ne pourras afficher qu'une erreur à la fois. Il serait plus optimisé d'enregistrer les erreurs dans un tableau php puis de faire afficher ce tableau en php.
Du genre :
[php]<?php
session_start(); //On demarre une session parce que j'ai envi ^^
require("conf.php3"); //On insert le fichier qui contient les informations
if (isset($_POST['envoyer']))
{
$chaine = "abcdefghijklmnopqrstuvwxyz0123456789";
$confirm = str_shuffle($chaine); //On créé le code de confirmation
$mail = htmlentities($_POST['mail']);
$pseudo = htmlentities($_POST['pseudo']); //On recupère les infos
$mdp = htmlentities($_POST['mdp']);
$verif_mdp = htmlentities($_POST['verif_mdp']);
$nom = htmlentities($_POST['nom']);
$prenom = htmlentities($_POST['prenom']);
$pays = htmlentities($_POST['pays']);
$website = htmlentities($_POST['website']);
$born = htmlentities($_POST['born']);
$sexe = htmlentities($_POST['sexe']);
/*On Fait la variable contenant le mail de confirmation*/
$message1 = '<html><body><img src="http://www.web-astronomie.com/images/entete-mail.png"></br><br>';
$message1 .= '<font face="Tahoma" color="#3b5998" size="2">Bonjour<b> ' . $prenom . ' ' . $nom . ' </b>et bienvenue sur<b> ' .$nom_site. '</b></br>';
$message1 .= 'Toute l\'équipe de Web Astronomie vous remercie de votre inscription.<br><br>';
$message1 .= 'Vos identifiants (conserver les précieusement) : <br>';
$message1 .= '</br>';
$message1 .= 'Votre pseudo : <b>' . $pseudo .'</b><br>';
$message1 .= 'Votre mot de passe : <b>' . $mdp .'</b><br>';
$message1 .= '</br>';
$message1 .= 'Votre profil : </br>';
$message1 .= '</br>';
$message1 .= 'Votre mail : <b>' . $mail .'</b></br>';
$message1 .= 'Votre nom : <b>' . $nom .'</b><br>';
$message1 .= 'Votre prenom : <b>' . $prenom .'</b><br>';
$message1 .= 'Votre sexe : <b>' . $sexe .'</b></br>';
$message1 .= 'Votre pays : <b>' . $pays .'</b><br>';
$message1 .= 'Votre date de naissance : <b>' . $born .'</b><br><br>';
$message1 .= 'Pour modifier vos infos, rendez-vous dans votre compte<br>';
$message1 .= '</br>';
$message1 .= 'Cliquez sur le lien ci-dessous pour activer votre compte :</br>';
$message1 .= '</br>';
$message1 .= '<a href="http://www.web-astronomie.com/confirm.php?login=' . str_replace(' ','%20',$pseudo) . '&confirm=' . $confirm . '">';
$message1 .= 'Cliquez ici pour activer</a>';
$message1 .= '</br></br>';
$message1 .= 'Nous vous remercions de votre fidélité<br>';
$message1 .= 'L\'équipe de <b>Web Astronomie</b></font></body></html>';
$sql = connect_sql(); //On se connecte à MySQL
$verification = mysql_query("SELECT COUNT(*) FROM pdf_membre WHERE pseudo='$pseudo' OR mail='$mail'") or die (mysql_error());
$donnees = mysql_fetch_array($verification)or die (mysql_error());
$info_formulaire = array();
if($donnees['nb'] >= 1) //On verifie que le pseudo ou le mail n'existe pas déjà
{
$info_formulaire[] ="Votre pseudo est déjà pris !";
}
if( empty($pseudo) || empty($mdp) || empty($verif_mdp) || empty($mail) || empty($nom) || empty($prenom) || empty($born) || empty($sexe)) //On verifie que les variables précédentes ne soient pas vide
{
$info_formulaire[] ="Un ou plusieurs champs ne sont pas remplis !";
}
if( $mdp != $verif_mdp) //On verifie que les 2 pass sont identiques
{
$info_formulaire[] ="Le deux mots de passe ne sont pas identiques !";
}
if (!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.
{
$info_formulaire[] ="Votre adresse email n\'est pas correcte !";
}
if(isset($info_formulaire) && count($info_formulaire) == 0)
{
mysql_query("INSERT INTO pdf_membre VALUES ('','$pseudo', '$mdp', '$mail', '$confirm', '$nom', '$prenom', '$pays', '$born', '$website', '$sexe')");
$info_formulaire[] ="Félicitation, vous êtes maintenant inscrit sur Web Astronomie ! Vous allez recevoir un email pour activer votre compte";
$entete = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: Web Astronomie <$email_admin>\r\n";
$entete .= "Reply-To: $email_admin\r\n";
mail($mail,'Bienvenue sur ' .$nom_site. ' ' . $login .'' , $message1, $entete);
mysql_close($sql); //On se deconnecte
}
}
?>
<form action="#" method="post">
<div>
...
Homme : <input type="radio" name="sexe" value="1" />
Femme : <input type="radio" name="sexe" value="2" />
...
<input type = "submit" name = "envoyer" value = "Envoyer" />
</div>
</form>
<?php if (isset($info_formulaire) && count($info_formulaire) > 0)
{
foreach ($info_formulaire as $value) echo '<p>- '.$value.'</p>';
}
?>[/php]
Tu trouves pas ça plus simple ?