Mes conditions sont ignorées
JS00000
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
JS00000 Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
JS00000 Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
Voilà maintenant un moment qu'un soucis me tracasse: je suis en train de mettre en place un système d'options pour modifier ses information sur mon site, seulement, quand je valide le formulaire, toutes mes conditions sont ignorées...
Le code:
Seule cette partie s'excécute en ignorant tout le reste:
Merci d'avance pour vos réponses et votre aide !
Voilà maintenant un moment qu'un soucis me tracasse: je suis en train de mettre en place un système d'options pour modifier ses information sur mon site, seulement, quand je valide le formulaire, toutes mes conditions sont ignorées...
Le code:
<?php $pass = 1; $avatar = 1; if(!empty($_POST['a_pass']) || !empty($_POST['nv_pass']) || !empty($_POST['nv_pass_r'])) { if(!empty($_POST['a_pass']) && !empty($_POST['nv_pass']) && !empty($_POST['nv_pass_r'])) { $req_a_mdp = $bdd->prepare('SELECT password FROM membres WHERE id = ?'); $req_a_mdp->execute(array($_SESSION['id'])); $a_mdp = $req_a_mdp->fetch(); if(password_verify($_POST['a_pass'], $a_mdp['password'])) { if($_POST['nv_pass'] == $_POST['nv_pass_r']) { $pass = 2; } else { header('Location: compte.php?erreur=9'); } } else { header('Location: compte.php?erreur=8'); } } else { header('Location: compte.php?erreur=7'); } } if(!empty($_FILES['avatar']['name'])) { $extention = array("jpg", "jpeg", "png", "gif"); $verif_req_av = new SplFileInfo($_FILES['avatar']['name']); $verif_av = $verif_req_av->getExtension(); if(in_array($verif_av, $extention)) { if($_FILES['avatar']['size'] <= 90000) { list($width_av, $height_av) = getimagesize($_FILES['avatar']['tmp_name']); if($width_av <= '800' && $height_av <= '800') { if($_FILES['avatar']['error'] == 0) { $nom_av = $_SESSION['id'] . '.' . $verif_av; $avatar = 2; } else { header('Location: compte.php?erreur=6'); } } else { header('Location: compte.php?erreur=5'); } } else { header('Location: compte.php?erreur=4'); } } else { header('Location: compte.php?erreur=3'); } } if($_POST['aff_date'] != 1) { $_POST['aff_date'] = 0; } if($_POST['aff_annee'] != 1) { $_POST['aff_annee'] = 0; } if($pass == 2 && $avatar == 2) { move_uploaded_file($_FILES['avatar']['tmp_name'], 'images/users/' . $nom_av); if($transfere_av == 1) { $update = $bdd->prepare('UPDATE membres SET mail = :mail, password = :pass, avatar = :avatar, bio = :bio, opt = :opt WERE id = :id'); $update->execute(array( 'mail' => $_POST['mail'], 'pass' => password_hash($_POST['pass_nv'], PASSWORD_BCRYPT), 'avatar' => $nom_av, 'bio' => $_POST['bio'], 'opt' => $_POST['aff_date'] . ',' . $_POST['aff_annee'] )); header('Location: compte.php?modif=4'); } else { header('Location: compte.php?erreur=2'); } } elseif($pass == 2 && $avatar == 1) { $update = $bdd->prepare('UPDATE membres SET mail = :mail, password = :pass, avatar = :avatar, bio = :bio, opt = :opt WERE id = :id'); $update->execute(array( 'mail' => $_POST['mail'], 'pass' => password_hash($_POST['pass_nv'], PASSWORD_BCRYPT), 'bio' => $_POST['bio'], 'opt' => $_POST['aff_date'] . ',' . $_POST['aff_annee'] )); header('Location: compte.php?modif=3'); } elseif($pass == 1 && $avatar == 2) { move_uploaded_file($_FILES['avatar']['tmp_name'], 'images/users/' . $nom_av); if($transfere_av == 1) { $update = $bdd->prepare('UPDATE membres SET mail = :mail, password = :pass, avatar = :avatar, bio = :bio, opt = :opt WERE id = :id'); $update->execute(array( 'mail' => $_POST['mail'], 'avatar' => $nom_av, 'bio' => $_POST['bio'], 'opt' => $_POST['aff_date'] . ',' . $_POST['aff_annee'] )); header('Location: compte.php?modif=2'); } else { header('Location: compte.php?erreur=1'); } } else { $update = $bdd->prepare('UPDATE membres SET mail = :mail, password = :pass, avatar = :avatar, bio = :bio, opt = :opt WERE id = :id'); $update->execute(array( 'mail' => $_POST['mail'], 'bio' => $_POST['bio'], 'opt' => $_POST['aff_date'] . ',' . $_POST['aff_annee'] )); header('Location: compte.php?modif=1'); }
Seule cette partie s'excécute en ignorant tout le reste:
else { $update = $bdd->prepare('UPDATE membres SET mail = :mail, password = :pass, avatar = :avatar, bio = :bio, opt = :opt WERE id = :id'); $update->execute(array( 'mail' => $_POST['mail'], 'bio' => $_POST['bio'], 'opt' => $_POST['aff_date'] . ',' . $_POST['aff_annee'] )); header('Location: compte.php?modif=1'); }
Merci d'avance pour vos réponses et votre aide !
A voir également:
- Mes conditions sont ignorées
- Mise en forme conditionnelle excel plusieurs conditions - Guide
- Excel reporter des données sur une autre feuille avec conditions ✓ - Forum Excel
- Quelles conditions sont nécessaires pour se créer un compte sur un réseau social quand on est âgé de moins de 15 ans ? - Accueil - Guide réseaux sociaux
- Libreoffice calc si plusieurs conditions ✓ - Forum LibreOffice / OpenOffice
- Je ne suis pas un robot confidentialité - conditions ✓ - Forum Windows 8 / 8.1
1 réponse
Bonjour,
Commence par mettre en commentaire toutes tes redirections
Ensuite,
- Récupère "PROPREMENT" tes variables AVANT de les utiliser (voir ici : https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
- Active la gestion des erreurs PDO
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
- Active aussi l'affichage des erreurs PHP au début de ton code
essaye également (c'est le plus important je pense....) de réorganiser ton code... quand je vois que tu écris 4 fois la même requête et/ou plusieurs fois les même IF....on ne peut que s'interroger sur la fiabilité du code et la logique mise en place...
Pour finir, fais donc des PRINT de tes variables
pour savoir ce qu'elles contiennent et n'hésites pas à ajouter quelques ECHO dans tes différents blocs conditionnels pour voir si tu rentres dedans ou non.
Commence par mettre en commentaire toutes tes redirections
Ensuite,
- Récupère "PROPREMENT" tes variables AVANT de les utiliser (voir ici : https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
- Active la gestion des erreurs PDO
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
- Active aussi l'affichage des erreurs PHP au début de ton code
error_reporting(E_ALL);
essaye également (c'est le plus important je pense....) de réorganiser ton code... quand je vois que tu écris 4 fois la même requête et/ou plusieurs fois les même IF....on ne peut que s'interroger sur la fiabilité du code et la logique mise en place...
Pour finir, fais donc des PRINT de tes variables
pour savoir ce qu'elles contiennent et n'hésites pas à ajouter quelques ECHO dans tes différents blocs conditionnels pour voir si tu rentres dedans ou non.
- En commençant par des print de post et files
print_r($_POST); print_r($_FILES);
Merci en tout cas de ton aide !