Php qui ne marche pas, sans raison
Résolu
bogal
-
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.
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
-
Bonjour,
à première vue, il manque une parenthèse fermante à la ligneif($_POST['pass'] == $_POST['pass_conf']
Ensuite, vous vous trompez en utilisant des ||: il suffit de remplir $_POST['nom'] pour que ça soit validé. -
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 !
-
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...'; } ?>
-
-
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
-
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');
}
?>