"NULL" vs NULL
Résolu
cristoc
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
-
cristoc Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
cristoc Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit probleme de compréhension pour l'attribution de la valeur nulle à une variable.
Je récupére les données d'un formulaire avec cette boucle:
par exemple
me donne donc
et
me donne
ensuite si je teste $var2 avec isset:
j'obtiens vrai
mais si je teste comme ceci
j'obtiens faux
Je précise que j'attribue "NULL" et non NULL sans guillemets car c'est pour insertion telle quelle en base de données.
Bref j'y arrive, mais je ne saisis pas la subtilité
Merci d'eclaircir ma lanterne ...
J'ai un petit probleme de compréhension pour l'attribution de la valeur nulle à une variable.
Je récupére les données d'un formulaire avec cette boucle:
foreach($_POST as $key => $value ) {
$$key = $value;
if(empty($value)) $value = "NULL";
}
par exemple
$_POST['var1'] = 'resultat1';
me donne donc
$var1 = $resultat1;
et
$_POST['var2'] = '';
me donne
$var2 = "NULL";
ensuite si je teste $var2 avec isset:
if(isset($var2))
j'obtiens vrai
mais si je teste comme ceci
if($var2)
j'obtiens faux
Je précise que j'attribue "NULL" et non NULL sans guillemets car c'est pour insertion telle quelle en base de données.
Bref j'y arrive, mais je ne saisis pas la subtilité
Merci d'eclaircir ma lanterne ...
Configuration: Linux / Chrome 79.0.3945.130
A voir également:
- Retour null de wcfdll_appelcom
- Retour à la ligne excel formule - Guide
- Retour à la ligne chatgpt - Forum Réseaux sociaux
- Notepad++ retour à la ligne ✓ - Forum Bureautique
- Retour à la ligne google sheet - Forum Google Docs
- Comment faire retour sur page ✓ - Forum MacOS
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
créer des variables à partir des données fournies par l'utilisateur me semble très dangereux.
es-tu certain à propos de
peux-tu tester ceci?
créer des variables à partir des données fournies par l'utilisateur me semble très dangereux.
es-tu certain à propos de
$var1 = $resultat1;?
peux-tu tester ceci?
$var2 = "NULL"; if($var2) echo 1; else echo 2;
Bonjour,
ISSET sert à vérifier si une variable existe ( IS SET en anglais ) ... et peu importe qu'elle contienne quelque chose ou non.
EMPTY vérifie si une variable est "vide"
Si le contenu de la variable = "" ou 0 ou false ou NULL (sans les guillemets) .. alors elle est considérée comme "EMPTY". Idem si un array ne contient aucune valeur ( array() ).
"EMPTY" (entre quote) c'est une chaine de caractères (du texte) (une string) ...
Elle n'est donc pas "vide"
Et lorsque tu testes ta variable directement comme ceci:
ça répondra TRUE (vrai ) du moment que ta variable n'est pas FALSE ou NULL ou égale à 0 ou VIDE
Au passage, je t'invite à lire et à appliquer ceci dans ton code
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Et merci d'utiliser les balises de code correctement ( en y indiquant le langage) afin d'avoir la coloration syntaxique
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
ISSET sert à vérifier si une variable existe ( IS SET en anglais ) ... et peu importe qu'elle contienne quelque chose ou non.
EMPTY vérifie si une variable est "vide"
Si le contenu de la variable = "" ou 0 ou false ou NULL (sans les guillemets) .. alors elle est considérée comme "EMPTY". Idem si un array ne contient aucune valeur ( array() ).
"EMPTY" (entre quote) c'est une chaine de caractères (du texte) (une string) ...
Elle n'est donc pas "vide"
Et lorsque tu testes ta variable directement comme ceci:
if($var2)
ça répondra TRUE (vrai ) du moment que ta variable n'est pas FALSE ou NULL ou égale à 0 ou VIDE
Au passage, je t'invite à lire et à appliquer ceci dans ton code
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Et merci d'utiliser les balises de code correctement ( en y indiquant le langage) afin d'avoir la coloration syntaxique
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
merci d'avoir répondu.
Au final mon probleme était une étourderie, comme souvent, puisque de fait $$key ne prenait pas "NULL" comme valeur:
au lieu de :
il faut mettre
Ceci m'avais fait croire que "NULL" était une valeur spéciale pour php, quand ce n'est qu'une chaine de caractères comme une autre.
Pour le soucis de sécurité que tu soulèves, il ne s'agit pas d'un formulaire public, donc ce n'est pas un problème en l'état, mais si tu peux m'en dire plus ça m’intéresse.
suggestion:
Merci et bonne soirée