Problème avec "inscription terminée, veuillez vous connecter"

Zakarya93 Messages postés 1026 Statut Membre -  
Zakarya93 Messages postés 1026 Statut Membre -
Bonjour,

Une simple question, pourquoi quand je m'inscrit sur mon site pour faire un test, à chaque fois par exemple pour vérifier que php va empecher un utilisateur de se connecter avec un même pseudo ou une même adresse email, j'ai bien les messages d'erreurs en rouge mais en dessous j'ai le "Inscription terminée, vous pouvez vous connecter" qui s'affiche quand même et les données ont été enregistrées dans ma base de données malgré que j'ai juste mis le pseudo ??

et enfin, pourquoi j'ai ces lettres : é
--> Veuillez saisir un password
Veuillez vous décrire en quelques lignes
Cette adresse email existe déjÃ
avez vous oublié votre password ?
Inscription terminée, vous pouvez vous connecter


Merci d'avance ! :)
A voir également:

2 réponses

Shinegans Messages postés 62 Statut Membre 2
 
Pour les lettres as tu penser a mettre dans ton head

<meta charset="UTF-8" >
en faite les caractere speciaux vienne du fait que les é n'existe pas de base en html/php il faut les " inclures" avec la commande précedente

Je vulgarise mais bon c'est l'idée

Pour le reste si tu peux nous fournir ton code ca aiderais un peux :)
0
Zakarya93 Messages postés 1026 Statut Membre 10
 
J'ai mis encodage UTF8 mais j'ai "" au dessus de ma page d'inscription c'est bizzare, c'est quand je mets UTF8 sans botom que ça s'enlève ce truc.

Sinon register.php :

<h1>Inscription</h1>

<?php	  
if (!isset($_POST['submit']))
{
?>

<form method="POST" action="">

   <label for='sexe'>Sexe</label>
   <select name="sexe">
           <?php echo isset($sexe)?'<option value='.$sexe.'>'.$sexe.'</option>':""; ?>
           <?php echo $sexe != 'Homme' ?'<option value="Homme">Homme</option>':""; ?>
           <?php echo $sexe != 'Femme' ?'<option value="Femme">Femme</option>':""; ?>          
 </select><br /><br/>
 
 <label for="pseudo">Votre pseudo : </label>
 <input type="text" name ="pseudo" value='<?php echo isset($pseudo) ? $pseudo :""; ?>'><br />
 
 <label for="password">Votre password : </label>
 <input type="password" name ="password"><br />
 
 <label for="repeatpassword">Repetez votre password : </label>
 <input type="password" name ="repeatpassword"><br />
 
 <label for="email">Veuillez saisir votre email : </label>
 <input type="text" name ="email" value='<?php echo isset($email) ? $email :""; ?>'><br />
 
 <label for="apropos">A propos de vous </label>
 <textarea rows="6" cols="30" name="apropos"><?php echo isset($apropos) ? $apropos : ""; ?></textarea><br /><br />
 
 <input type="submit" value="S'inscrire" name="submit">
 
</form>

<?php

}
else
{
              
		$sexe = htmlspecialchars(strip_tags($_POST['sexe']));
        $pseudo = htmlspecialchars(strip_tags($_POST['pseudo']));
        $password = htmlspecialchars(strip_tags($_POST['password']));
        $repeatpassword = htmlspecialchars(strip_tags($_POST['repeatpassword']));
        $email = htmlspecialchars(strip_tags($_POST['email']));
        $apropos = htmlspecialchars(strip_tags($_POST['apropos']));       
    
    
    if(empty($pseudo))
       {
      $errors[] ="Veuillez saisir un pseudo";
    }
    
    if (empty($password))
    {
      $errors[] ="Veuillez saisir un password";
    }
    
    if($password != $repeatpassword)
    {
     $errors[] = "Vos deux password doivent être identiques";
    }
    
    if(!filter_var($email,FILTER_VALIDATE_EMAIL))
    {
     $errors[] = "Votre adresse email n'est pas correcte";     
    }
    
    if(empty($apropos))
    {
     $errors[] = "Veuillez vous décrire en quelques lignes"; 	 
    }
	
	if(pseudo_existe($pseudo) == 1)
	{
	 $errors[] = "Ce pseudo n'est pas disponible";
    }
	
	if(email_existe($email) == 1)
	{
	 $errors[] = "Cette adresse email existe déjà <br> avez vous oublié votre <a href='#'>password ?</a>";
	}
	
    if(!empty($errors))
    {
     foreach($errors as $error)
     {
      echo "<div class='error'>".$error."</div>";
     }
      } 
	   inscrire_utilisateur($pseudo,$password,$email,$sexe,$apropos);
                        die('Inscription terminée, vous pouvez vous <a href=\'index.php?page=login\'>connecter</a>');
}
?>
0
Zakarya93 Messages postés 1026 Statut Membre 10
 
J'ai mis encodage UTF8 mais j'ai "ï»?" (? à l'envers) au dessus de ma page d'inscription c'est bizzare, c'est quand je mets UTF8 sans botom que ça s'enlève ce truc.

Sinon register.php :

<h1>Inscription</h1>

<?php	  
if (!isset($_POST['submit']))
{
?>

<form method="POST" action="">

   <label for='sexe'>Sexe</label>
   <select name="sexe">
           <?php echo isset($sexe)?'<option value='.$sexe.'>'.$sexe.'</option>':""; ?>
           <?php echo $sexe != 'Homme' ?'<option value="Homme">Homme</option>':""; ?>
           <?php echo $sexe != 'Femme' ?'<option value="Femme">Femme</option>':""; ?>          
 </select><br /><br/>
 
 <label for="pseudo">Votre pseudo : </label>
 <input type="text" name ="pseudo" value='<?php echo isset($pseudo) ? $pseudo :""; ?>'><br />
 
 <label for="password">Votre password : </label>
 <input type="password" name ="password"><br />
 
 <label for="repeatpassword">Repetez votre password : </label>
 <input type="password" name ="repeatpassword"><br />
 
 <label for="email">Veuillez saisir votre email : </label>
 <input type="text" name ="email" value='<?php echo isset($email) ? $email :""; ?>'><br />
 
 <label for="apropos">A propos de vous </label>
 <textarea rows="6" cols="30" name="apropos"><?php echo isset($apropos) ? $apropos : ""; ?></textarea><br /><br />
 
 <input type="submit" value="S'inscrire" name="submit">
 
</form>

<?php

}
else
{
              
		$sexe = htmlspecialchars(strip_tags($_POST['sexe']));
        $pseudo = htmlspecialchars(strip_tags($_POST['pseudo']));
        $password = htmlspecialchars(strip_tags($_POST['password']));
        $repeatpassword = htmlspecialchars(strip_tags($_POST['repeatpassword']));
        $email = htmlspecialchars(strip_tags($_POST['email']));
        $apropos = htmlspecialchars(strip_tags($_POST['apropos']));       
    
    
    if(empty($pseudo))
       {
      $errors[] ="Veuillez saisir un pseudo";
    }
    
    if (empty($password))
    {
      $errors[] ="Veuillez saisir un password";
    }
    
    if($password != $repeatpassword)
    {
     $errors[] = "Vos deux password doivent être identiques";
    }
    
    if(!filter_var($email,FILTER_VALIDATE_EMAIL))
    {
     $errors[] = "Votre adresse email n'est pas correcte";     
    }
    
    if(empty($apropos))
    {
     $errors[] = "Veuillez vous décrire en quelques lignes"; 	 
    }
	
	if(pseudo_existe($pseudo) == 1)
	{
	 $errors[] = "Ce pseudo n'est pas disponible";
    }
	
	if(email_existe($email) == 1)
	{
	 $errors[] = "Cette adresse email existe déjà <br> avez vous oublié votre <a href='#'>password ?</a>";
	}
	
    if(!empty($errors))
    {
     foreach($errors as $error)
     {
      echo "<div class='error'>".$error."</div>";
     }
      } 
	   inscrire_utilisateur($pseudo,$password,$email,$sexe,$apropos);
                        die('Inscription terminée, vous pouvez vous <a href=\'index.php?page=login\'>connecter</a>');
}
?>
0
Zakarya93 Messages postés 1026 Statut Membre 10
 
Niquel j'ai mis <meta charset="UTF-8" > dans mon head index.php ça s'est enlevé ! du coup j'ai toujours ce problème de "inscription terminée"
0
Shinegans Messages postés 62 Statut Membre 2
 
il faut que tu mette une condition qui dit que ton message s'affiche que si il n'y a pas d'erreur car la il est prévu pour s'afficher en bas de page quoi qu'il arrive

et pour UTF 8 faut le mettre dans le php aussi
0
Shinegans Messages postés 62 Statut Membre 2
 
tu creer par exemple une variable $test=0;

dans tes erreurs tu rajoute une ligne du type $test=1;

et tu fait
if ($test !==1) // donc il sera rentrer dans aucun script d'erreur
{
inscrire_utilisateur($pseudo,$password,$email,$sexe,$apropos);
die('Inscription terminée, vous pouvez vous ...
}
0
jordane45 Messages postés 40050 Statut Modérateur 4 757
 
Bonjour,

Ton code semble correct ....
Mais.. au cas où .. as tu fais des ECHO de tes variables pour t'assurer de ce qu'elles contiennent ?

// le temps des tests
echo "<br> --debug : errors=<br>";
print_r($errors);

 if(!empty($errors)){
     foreach($errors as $error) {
      echo "<div class='error'>".$error."</div>";
     }
   }

// le temps des tests
echo "<br> --debug : test =".$test ;
if (!$test){
  inscrire_utilisateur($pseudo,$password,$email,$sexe,$apropos);
  die('Inscription terminée, vous pouvez vous <a href=\'index.php?page=login\'>connecter</a>');
 }else{
  echo "<br> TEST = 1 !  L'inscription n'a pas pu aboutir ! ";
 } 




Par contre, il n'est pas nécéssaire d'utiliser cette variable "test" ... il suffit de regarder si $errors contient quelque chose ou non.

$errors=array();  
if(empty($pseudo)){
 $errors[] ="Veuillez saisir un pseudo";
}

if (empty($password)){
 $errors[] ="Veuillez saisir un password";
}

if($password != $repeatpassword) {
 $errors[] = "Vos deux password doivent être identiques";
}

if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
 $errors[] = "Votre adresse email n'est pas correcte";     
}

if(empty($apropos)){
 $errors[] = "Veuillez vous décrire en quelques lignes";   
}

if(pseudo_existe($pseudo) == 1) {
$errors[] = "Ce pseudo n'est pas disponible";
}

if(email_existe($email) == 1) {
$errors[] = "Cette adresse email existe déjà <br> avez vous oublié votre <a href='#'>password ?</a>";
}
 
if(count($errors)>0) {
  foreach($errors as $error){
    echo "<div class='error'>".$error."</div>";
  }
}else{
   inscrire_utilisateur($pseudo,$password,$email,$sexe,$apropos);
   echo "Inscription terminée, vous pouvez vous <a href='index.php?page=login'>connecter</a>";
}



Cordialement,
Jordane
0
Shinegans Messages postés 62 Statut Membre 2
 
Comme je l'ai dit je débute j'ai une semaine de php de connaissance alors bon mes methodes sont certainement pas les plus optimal :D
0
Zakarya93 Messages postés 1026 Statut Membre 10
 
Encore merci !! sinon j'avais un lien "retournez à la page de connexion" en dessous de la page d'inscription en bleu mais il a disparu du coup j'aimerai le rajouter svp
0
jordane45 Messages postés 40050 Statut Modérateur 4 757 > Shinegans Messages postés 62 Statut Membre
 
@Shinegans
J'en fais depuis plusieurs années ... et mes méthodes ne sont pas toujours les plus optimales non plus :-p

Et puis.. l'idée de la variable test n'est pas mauvaise en soit .. mais comme il a déjà une autre variable qui permet de savoir s'il existe des erreurs ou non, cela devient superflu.
Après.. il n'existe pas qu'une seule façon de faire .. et il existe peut être encore mieux ....(mais je n'ai pas le temps de m'y pencher :-) )
0
Shinegans Messages postés 62 Statut Membre 2
 
tu rajoute juste en toute fin un
<a href="urldelapage" >Retourner à la page de connexion </a>
0
Shinegans Messages postés 62 Statut Membre 2
 
apres tu peux inclure un peux de css pour le positionner parfaitement en bas a droite
0