OVH Cloud OVH Cloud

var a NULL et $_POST

8 réponses
Avatar
yvon.thoravalNO
peut-être ais-je mal compris le manuel php concernant l'utilisation the
isnull() avec une variable MAIS, j'ai l'impression que soit cela ne
"passe pas" un POST soit affecter a valeur d'une variable à NULL à une
autre variable pose pb (j'en doute...)

notez que je ne post que pour ma comprenotte vu que j'ai trouvé une
solution alternative.

ce que j'essayais de faire :
(il s'agit d'une màj de db MySQL)

$av_id = ($avIsSet)? $avRec->rct_ary{'av_id'} : NULL;

(s'il y a un 'av_id' je lui attribue la valeur sinon NULL ce qui est
d'ailleurs peut-être inutile vu qu'une variable !isset() est sans doute
à NULL ???)

puis, je POST ça dans un hidden input

comme je ne peut pas tester $_POST['av_id'] je fais $av_id =
$_POST['av_id']

puis je teste if(isnull('av_id'))

comme expliqué à la page PHP NULL Manual :
http://php.oregonstate.edu/manual/en/language.types.null.php

mais je me fais jeter je n'ai pas de message d'erreur (mon php.ini est
brut de fonderie)


j'ai trouvé une soltion "toute bête" , au lieu de faire :

$av_id = ($avIsSet)? $avRec->rct_ary{'av_id'} : NULL; je fais :

$av_id = ($avIsSet)? $avRec->rct_ary{'av_id'} : '';

est je teste accordingly car j'ai remarqué que le navigateur n'affiche
pas (ne prend pas en compte?) NULL dans la source. Auquel cas NULL
serait perdu après un POST ???


--
Yvon Thoraval

8 réponses

Avatar
CrazyCat
Yvon Thoraval wrote:
comme je ne peut pas tester $_POST['av_id'] je fais $av_id > $_POST['av_id']
puis je teste if(isnull('av_id'))


pourquoi tu ne testes pas if (isnull($av_id)) ?
--
CrazyCat
Tout sur les eggdrops en français...
http://www.c-p-f.org

Avatar
yvon.thoravalNO
CrazyCat wrote:


pourquoi tu ne testes pas if (isnull($av_id)) ?


ben parce que c'est la syntaxe expliquée là :
http://php.oregonstate.edu/manual/en/language.types.null.php

comme ta question m'a perturbé, je viens de faire un petit test :

$var = NULL;

if (isnull($var)) {
echo "$var===NULLn";
} else {
echo "$var!==NULLn";
}

if (isnull("var")) {
echo "var===NULLn";
} else {
echo "var!==NULLn";
}
?>

et j'obtiens :

$var!==NULL
var===NULL

ce qui, meêm si contre-intuitif, est tout-à-fait logique.

car amha isnull() teste la table des symboles :

le symbole "var" est bien à NULL

par contre $var ne l'et pas car ca valeur est attribuée à NULL

mais mon pb n'était pas là, il me semble (ais-je eu la berlue c'était en
période, arrosée, de fêtes) est-ce que NULL passe au travers d'un post ?

ou, est-ce que NULL devient '' est-ce la même chose ?

perso j'ai eu l'impression qqfois de récupérer 0 (zéro) à la place de
NULL qui serait génant...
--
Yvon Thoraval

Avatar
Thibaut Allender

mais mon pb n'était pas là, il me semble (ais-je eu la berlue c'était en
période, arrosée, de fêtes) est-ce que NULL passe au travers d'un post ?


non

ou, est-ce que NULL devient '' est-ce la même chose ?


ca n'est pas la meme chose, bien que ca soit ce que devient null si tu
le mets dans un input de type hidden

null, c'est pas de valeur
et '' c'est une valeur, mais vide

ceci dit, je ne vois pas bien pourquoi tu veux absolument pouvoir tester
si c'est NULL ou pas
quel est le but de la maneouvre ? (de savoir si c'est NULL ou vide)

a+

--
freelance + web|system developper|designer
+ 32 496 26 75 76 + http://www.capsule.org

Avatar
CrazyCat
Yvon Thoraval wrote:

essaye donc:
if ($var === null) {

Et tu ne rêves pas, il y a 3 --
CrazyCat
Tout sur les eggdrops en français...
http://www.c-p-f.org
Avatar
yvon.thoravalNO
CrazyCat wrote:

if ($var === null) {


ok, bonne idée, ca donne bien $var === null à vrai (test valeur et type)
--
Yvon Thoraval

Avatar
yvon.thoravalNO
Thibaut Allender wrote:

quel est le but de la maneouvre ? (de savoir si c'est NULL ou vide)


ah, ca n'a pas vraiment d'intérêt dans mon cas, je cherchais juste à
savoir ce qui se passait à travers un post. Un NULL venant de MySQL
devient un '', donc je dois tester accordingly.
--
Yvon Thoraval

Avatar
Olivier Miakinen

quel est le but de la maneouvre ? (de savoir si c'est NULL ou vide)


ah, ca n'a pas vraiment d'intérêt dans mon cas, je cherchais juste à
savoir ce qui se passait à travers un post. Un NULL venant de MySQL
devient un '', donc je dois tester accordingly.


À tout hasard...

Un « print_r($_POST) » ne répondrait pas à tes attentes ?


Avatar
yvon.thoravalNO
Olivier Miakinen <om+ wrote:


À tout hasard...

Un « print_r($_POST) » ne répondrait pas à tes attentes ?


ah ben si, j'ai fait ça je me suis même concocté un p'tit :

function print_ary($truc){
echo "<pre>";
print_r($truc);
echo "<pre><br />";
}

passeke j'en avait marre du comportement de print_r.

je n'ai pas rêvé (cf. post de Thibaut + haut)

à travers $_POST NULL devient '' ce qui n'est pas la même chose et ce
qui m'embête un peu avec MySQL mais j'ai trouvé une parade.

je cherchais à obtenir confirmation de ce fait.
--
Yvon Thoraval