Php qui ne marche pas, sans raison

Résolu
bogal -  
 bogal -
Bonjour à tous, j'ai un problème sur une page en php, j'ai tout vérifié, il n'y a pas d'erreur (du moins je n'en vois pas).
C'est une page qui récupère les données d'un formulaire d'inscription, la deuxième partie (if($_POST['pass'] == $_POST['pass_conf']) ne semble pas marcher car les mots de passe sont toujours considérés comme valides même quand j'en met deux différents ...

Voici le code complet de la page :
_______________________________________________________________
<?php
include ('./inc/acces.php');
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$pseudo = $_POST['pseudo'];
$mail = $_POST['mail'];
$pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
$pass_conf = mysql_real_escape_string(htmlspecialchars($_POST['pass_conf']));
$news = $_POST['inscription'];

if(!empty($_POST['nom']) || !empty($_POST['prenom']) || !empty($_POST['pseudo']) || !empty($_POST['mail']) || !empty($_POST['pass']) || !empty($_POST['pass_conf']))
{
if($_POST['pass'] == $_POST['pass_conf']
{
echo 'les mots de passe sont valides';
}
else
{
header('Location: http://site.com/inscription.php?error=4');
}
}
else
{
header('Location: http://site.com/inscription.php?error=5');
}
?>
______________________________________________________________
Merci de prêter attention à mon problème en espérant rapide de votre part.

4 réponses

  1. ze-life-of-quent1 Messages postés 2169 Statut Membre 780
     
    Bonjour,
    à première vue, il manque une parenthèse fermante à la ligne
    if($_POST['pass'] == $_POST['pass_conf']

    Ensuite, vous vous trompez en utilisant des ||: il suffit de remplir $_POST['nom'] pour que ça soit validé.
    0
  2. bogal
     
    J'ai ajouté la parenthèse mais rien de mieux, maintenant les mots de passe sont toujours considérés comme faux, c'est étrange quand même qu'un code aussi simple ne marche pas !
    0
    1. ze-life-of-quent1 Messages postés 2169 Statut Membre 780
       
      Je viens de tester en local et cela marche très bien :-/. Voici le code que j'ai utilisé:
      <?php
      $_POST['nom'] = 'abcd';
      $_POST['prenom'] = 'abcd';
      $_POST['pseudo'] = 'abcd';
      $_POST['mail'] = 'abcd';
      $_POST['pass'] = 'abcde';
      $_POST['pass_conf'] = 'abcd';
      if(!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['pseudo']) && !empty($_POST['mail']) && !empty($_POST['pass']) && !empty($_POST['pass_conf'])){ 
          if($_POST['pass'] == $_POST['pass_conf']){ 
              echo 'les mots de passe sont valides';    
          } 
          else{ 
              echo 'invalide!';
          } 
      } 
      else{ 
          echo 'incomplet...';
      }
      ?>
      0
  3. Utilisateur anonyme
     
    bonjour,

    include ('./inc/acces.php'); 


    y a quoi dans acces.php ?! apparement tu l'utilses pas ici...

    $pass = mysql_real_escape_string(htmlspecialchars($_POST['pass'])); 


    pourquoi utiliser htmlspecialchars avec mysqm_real_escape_string alors qu'il s'agit d'une simple comparaison ?!

    et malgrer tout à part l'erreur que ze-life-of-quent1 t'a signalé ton code doit marché je crois il suffit de revoir si les conditions sont vraix ou faux dans tes jeux d'essaie

    0
    1. bogal
       
      Le acces.php sert à se connecter sur la bdd que j'utilise pour insérer les données la table (j'ai pas mis le code ici)
      0
    2. ze-life-of-quent1 Messages postés 2169 Statut Membre 780
       
      Exact. Mais pourquoi ne pas faire ce traitement plus tard, quand vous hashez le mot de passe?
      0
    3. bogal
       
      Oui ca me semble plus logique pour éviter les étapes inutiles
      0
  4. bogal
     
    Bon le problème est résolu, j'ai modifié le code le code proposé par ze-life-of-quent1 :

    <?php
    if(!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['pseudo']) && !empty($_POST['mail']) && !empty($_POST['pass']) && !empty($_POST['pass_conf'])){
    if($_POST['pass'] == $_POST['pass_conf']){
    //Traitement avec la bdd
    }
    else{
    header('Location: http://site.com/inscription.php?error=4');
    }
    }
    else{
    header('Location: http://site.com/inscription.php?error=5');
    }
    ?>
    0