J'ai commencé le php il y a quelques jours, et j'ai tenter de faire un formulaire d'inscription... Or il y a de vérification à effectuer, et chacune si elle n'est pas ok doit recevoir une réponse différente, ce que je ne sais pas faire... Ce formulaire est loin d'être terminé (requete manquante, mot de passe non crypté ou hashé....etc), mais je vous mets ce que j'ai deja fait...
<?php include ("header.php")?>
<div style="text-align:left; margin-left: 60px; margin-right: 60px;">
<span style="font-family: Helvetica,Arial,sans-serif; font-weight: bold;">Inscription</span>
<br />
<br />
//formulaire
<form method="post" name="users" action="" >
Pseudo:<input type="text" name="pseudo" /><br /><br />
Mot de passe:<input type="password" name="password" /><br /><br />
Confirmation du mot de passe:<input type="password" name="pass_confirm" /><br /><br />
Adresse email:<input type="text" name="email"/><br /><br />
<img src="verif_code_gen.php" alt="Code de vérification" />
Merci de retaper le code de l'image ci-dessus: <input type="text" name="verif_code" /><br /><br />
<input type="submit" value="s'inscrire"/>
</form>
<?php
//connection base de données
$serveur = 'host';
$user = 'root';
$pass = '';
$bdd = '';
$connect= mysql_connect($serveur ,$user ,$pass) or die('Une erreur a eu lieu lors de la connection mysql');
mysql_select_db($bdd ,$connect) or die ('Un erreur a eu lieu lors du choix de la base de données');
//vérification du formulaire
//D'abord les caractères en rapport avec le mail
$atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // caractères autorisés avant l'arobase
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine)
$regex = '/^' . $atom . '+' . // Une ou plusieurs fois les caractères autorisés avant l'arobase
'(\.' . $atom . '+)*' . // Suivis par zéro point ou plus
// séparés par des caractères autorisés avant l'arobase
'@' . // Suivis d'un arobase
'(' . $domain . '{1,63}\.)+' . // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
// séparés par des points
$domain . '{2,63}$/i'; // Suivi de 2 à 63 caractères autorisés pour le nom de domaine
// on teste l'existence des variables et champs non vide.
if ((isset ($_POST['pseudo']) && !empty($_POST['pseudo']))
&& (isset($_POST['password']) && !empty($_POST['password']))
&& (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))
&& (isset($_POST['email']) && !empty($_POST['email']))
&& (isset($_POST['verif_code'])) && !Empty($_POST['verif_code'])){
// on teste les deux mots de passe.
if ($_POST['password'] == $_POST['pass_confirm']) {
//on teste les caractères spéciaux.
if((strrpos($_POST['pseudo']) && strrpos($_POST['password'])
&& strrpos($_POST['pass_confirm']))){
//on vérifie le code de vérification.
if($_POST['verif_code']==$_SESSION['aleat_nbr']){
//on vérifie le mail.
if (preg_match($regex, $email)){
//definition des variables qu'on envoie sur la base de données
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])) ;
$password = mysql_real_escape_string(htmlspecialchars($_POST['password'])) ;
$email = mysql_real_escape_string(htmlspecialchars($_POST['email'])) ;
//envoie des variables dans la base
if ( ! mysql_query ( "INSERT INTO `users` VALUES ( '' , '$pseudo' , '$password' , $email )" ) )
{
echo "Impossible de vous enregistrer suite à une erreur interne.";
}
else
{
//redirection et sortie si erreur DB
header ( 'Location: inscription.php' );
exit;
}
//requete pour demander l'envoie d'un mail à moi-même avec dessus un lien de confirmation pour faire passer l'état des users de 0 à 1, pas activé, activé.
$monemail = "truc@machin.com";
}}}}
else {echo " vous devez remplir tous les champs avant de soumettre le formulaire.";
else {echo "Les 2 mots de passe sont différents.";
else {echo "L'utilisation de caractères spéciaux n'est pas autorisée.";
else {echo "Le code de vérification est incorrect.";
else {echo "L'adresse e-mail n'est pas valide.";}}}}}