Passage de variable booléenne.

Sophie . S
Invité n'ayant pas de compte PHPfrance

08 févr. 2011, 16:28

Bonjour à tous,

Je bute sur quelque chose, qui pourtant à l'air d'être simple ?
Comment faire passer une variable booléenne par POST ?

Exemple :

EMISSION (emi.php) :

<html>
<form method="POST" action="rec.php">
<center>
<input type="hidden" name="a" value="ABC">
<input type="hidden" name='b' value="<?php echo ($b=true); ?>">
<input type=submit name=a_submit value="Action">
</center>
</form></html>

RECEPTION (rec.php) :

<?php
$a = ($_POST["a"]);
$b = ($_POST["b"]);

// if ($b=1) {$b=true;} // en ajoutant ça, c'est bool évidemment !

echo "a=".$a." - "."b=".$b;
if (is_bool($b)) {echo " - b=BOOL"."<br>";}
else {echo " - b=PAS BOOL"."<br>";}
?>

DONNE A L'ECRAN :
a=ABC - b=1 - b=PAS BOOL

Pourquoi le $_POST ne le récupère pas en booléen ? C'est impossible ?
Si quelqu'un a une suggestion de modification en EMISSION sans toucher à la RECEPTION !

Merci d'avance.

Sophie.S

ViPHP
ViPHP | 5462 Messages

08 févr. 2011, 16:31

oui c'est impossible, $_POSt récupére que du string

Sophie . S
Invité n'ayant pas de compte PHPfrance

08 févr. 2011, 16:37

Je m'en doutais !!!

Merci quand même stealth35

ViPHP
xTG
ViPHP | 7331 Messages

08 févr. 2011, 17:17

Obligé de passer par un entier, donc il faudra modifier la réception pour vérifier que l'entier est bien soit un "zéro" soit un "un".

ViPHP
ViPHP | 5462 Messages

08 févr. 2011, 17:18

Obligé de passer par un entier, donc il faudra modifier la réception pour vérifier que l'entier est bien soit un "zéro" soit un "un".
même pas un entier, c'est un de type string quand même :wink:

ViPHP
xTG
ViPHP | 7331 Messages

08 févr. 2011, 17:20

Oui enfin c'était pour dire qu'il fallait passer un caractère 1 ou 0. è_é
Ou alors on passe la chaîne de caractère "zero" ou "un" mais là on devient tordu...

ViPHP
ViPHP | 5462 Messages

08 févr. 2011, 17:30

Oui enfin c'était pour dire qu'il fallait passer un caractère 1 ou 0. è_é
Ou alors on passe la chaîne de caractère "zero" ou "un" mais là on devient tordu...
Oui, apres on peux utilise filter_input
filter_input(INPUT_POST, 'b', FILTER_VALIDATE_BOOLEAN);
mais bon comme faut pas modifier le code...

:wink:

Sophie . S
Invité n'ayant pas de compte PHPfrance

08 févr. 2011, 17:42

Merci à tous pour vos détails !

Pour la curiosité, je pense qu'il doit en être de même avec $_GET !
Qu'en est-il, si on passe par un $_COOKIE ou une $_SESSION ?

Merci pour tout,

Sophie