Page 1 sur 1

condition capricieuse?

Posté : 04 mai 2021, 17:49
par nestor94
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.

Re: condition capricieuse?

Posté : 04 mai 2021, 23:41
par nestor94
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'); 
}