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.
A voir également:
- Php qui ne marche pas, sans raison
- Pc qui freeze sans raison - Guide
- Compte facebook désactivé sans raison - Guide
- Compte instagram desactivé sans raison - Guide
- Easy php - Télécharger - Divers Web & Internet
- Pc qui rame sans raison - Guide
4 réponses
Bonjour,
à première vue, il manque une parenthèse fermante à la ligne
Ensuite, vous vous trompez en utilisant des ||: il suffit de remplir $_POST['nom'] pour que ça soit validé.
à 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é.
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,
y a quoi dans acces.php ?! apparement tu l'utilses pas ici...
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
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');
}
?>
<?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');
}
?>