[RESOLU] condition capricieuse?

Eléphant du PHP | 68 Messages

04 mai 2021, 17:49

Bonjour, j'ai un petit soucis avec une condition qui fonctionne sans fonctionner !
(script "allégé")
$sql = "SELECT objet1 FROM membres WHERE id=:id";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
$pdostat->execute();
$resultat = $pdostat->fetch();    
$objet1 = $resultat['objet1'];
if ($objet1 !== '/objets/filet.gif') 
{
	header('Location:erreur_objet_utilise.html'); 
}
else{
$sql= "UPDATE.... bla bla bla";
}
Explication du comportement du script:
Si objet1 est différent de filet.gif, la redirection s'effectue bien. Tout est normal.
Si objet1 EST filet.gif, l'update se passe bien mais la redirection s'effectue quand même !? (là, ça fait un peu tache)
J'ai essayé avec != avec !=== j'ai aussi inversé en mettant la condition avec == et === le problème demeure le même.

Eléphant du PHP | 68 Messages

04 mai 2021, 23:41

J'ai (encore) réussi à détourner le pb avec des switch à la place des if.
$sql = "SELECT objet1 FROM membres WHERE id=:id";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
$pdostat->execute();
$resultat = $pdostat->fetch();    
$objet1 = $resultat['objet1'];
switch($objet1)  {
case '/objets/filet.gif' :
bla bla bla bla bla;
}
header('Location:page_membre.php');
exit();
break;
default :
header('Location:erreur_objet_utilise.html'); 
}