Page 1 sur 2

empty ou isset ?

Posté : 18 mai 2022, 10:51
par wisefun77
Bonjour,

Je n'arrive toujours pas à faire plusieurs conditions avec les balises vides ou pleines.
Dans ce code, cela ne passe jamais dans le 3ième elseIf.

Code : Tout sélectionner

<?php // Conditions de traitement des balises reçues // Si la variable new-asset est pleine et si la variable old-asset est vide. if (!empty($_POST["new-asset"])&& !!!empty($_POST['old-asset'])) {// Set session variables echo 'IF new-asset seul'; } // Si la variable old-asset est pleine et si la variable new-asset est vide. elseIF(!empty($_POST['old-asset'])) {// Set session variables echo 'ElseIF old-asset seul'; } // Si les deux variables new-asset et old-asset sont pleines. elseIF(!empty($_POST['new-asset']) && !empty($_POST['old-asset'])) {// Set session variables echo 'ElseIF old-asset and new-asset'; } // Function suite clique sur le bouton précédent. elseif(isset($_SESSION['Balises2'])){ $page='5'; precedent(); } ?>
Quelle est mon erreur?

Merci.

Re: empty ou isset ?

Posté : 18 mai 2022, 11:11
par or 1
$var1 = "r";
$var2 = "";

if(!empty($var1))
	echo "1";
	
if(!empty($var2))
	echo "2";
	
if(!!empty($var1))
	echo "3";
	
if(!!empty($var2))
	echo "4";

if(!!!empty($var1))
	echo "5";
	
if(!!!empty($var2))
	echo "6";
avant d'éxécuter ce code, demandez-vous ce que cela doit afficher, et ensuite comparez avec le résultat.

Re: empty ou isset ?

Posté : 18 mai 2022, 11:25
par wisefun77
Bonjour or1,

J'étudie de suite.
Merci.

Re: empty ou isset ?

Posté : 18 mai 2022, 11:46
par wisefun77
Bonjour or1
voilà ce que j'ai compris.

Code : Tout sélectionner

<?PHP $var1 = "r"; $var2 = ""; if(!empty($var1)) echo "1"; // SI $var1 n'est pas vide if(!empty($var2)) echo "2"; // SI $var2 n'est pas vide if(!!empty($var1)) echo "3"; // SI $var1 est vide if(!!empty($var2)) echo "4"; // SI $var2 est vide if(!!!empty($var1)) echo "5"; // SI $var1 est plein ou True if(!!!empty($var2)) echo "6"; // SI $var2 est plein ou True ?> cela affiche 1 4 5
Merci

Re: empty ou isset ?

Posté : 18 mai 2022, 14:47
par or 1
cela affiche 1 4 5
c'est ce à quoi vous vous attendiez ?

Re: empty ou isset ?

Posté : 18 mai 2022, 15:54
par wisefun77
En lisant votre code OUI.

Mais en l'adaptant à mon code, cela ne fonctionne pas.

Code : Tout sélectionner

<?php // Conditions de traitement des balises reçues if(isset($_POST["balise"])) { // Si la variable new-asset n'est pas vide et si la variable old-asset est vide. if (!empty($_POST['new-asset'])&& !!empty($_POST['old-asset'])) {// Set session variables $newasset =$_POST['new-asset']; echo $newasset. 'Premier IF new-asset seul'; } // Si la variable old-asset est pleine et si la variable new-asset est vide. if(!!!empty($_POST['old-asset']) && !!empty($_POST['new-asset'])) {// Set session variables $oldasset= $_POST['old-asset']; echo $oldasset.'2 // ElseIF old-asset seul'; } // Si les deux variables new-asset et old-asset sont pleines. if(!empty($_POST['new-asset']) && !!!empty($_POST['old-asset'])) {// Set session variables $newasset =$_POST['new-asset']; $oldasset= $_POST['old-asset']; echo $newasset.$oldasset.'3// ElseIF old-asset and new-asset'; } }// fin IF principal. // Function suite clique sur le bouton précédent. elseif(isset($_SESSION['Balises2'])){ $page='5'; precedent(); } ?>
Ne passe jamais dans le Deuxième elseif, ni le dernier.

Merci

Re: empty ou isset ?

Posté : 18 mai 2022, 15:59
par or 1
echo "1"; // SI $var1 n'est pas vide
echo "5"; // SI $var1 est plein ou True
quelle est la différence entre tester si une variable n'est pas vide et tester si une variable est pleine ?

Re: empty ou isset ?

Posté : 18 mai 2022, 16:04
par wisefun77
Pour ce code.

Code : Tout sélectionner

<?php // Conditions de traitement des balises reçues if(isset($_POST["balise"]) && !empty($_POST['new-asset']) ) { // Si la variable new-asset n'est pas vide et si la variable old-asset est vide. $newasset =$_POST['new-asset']; echo $newasset. 'Premier IF new-asset seul'; } // Si la variable old-asset est pleine et si la variable new-asset est vide. elseif(isset($_POST["balise"]) && !empty($_POST['old-asset'])) {// Set session variables $oldasset= $_POST['old-asset']; echo $oldasset.'2 // ElseIF old-asset seul'; } // Si les deux variables new-asset et old-asset ne sont pas vides. elseif(isset($_POST["balise"])) {// Set session variables $newasset =$_POST['new-asset']; $oldasset= $_POST['old-asset']; echo $newasset.$oldasset.'3// ElseIF old-asset and new-asset'; } // Function suite clique sur le bouton précédent. elseif(isset($_SESSION['Balises2'])){ $page='5'; precedent(); } ?>
Passe bien dans le IF et dans le deuxième ElseIF, mais pas dans le dernier ELSEIF "elseif(isset($_POST["balise"]))"

Re: empty ou isset ?

Posté : 18 mai 2022, 16:06
par wisefun77
echo "1"; // SI $var1 n'est pas vide
echo "5"; // SI $var1 est plein ou True
quelle est la différence entre tester si une variable n'est pas vide et tester si une variable est pleine ?
Franchement pour moi c'est identique.

Re: empty ou isset ?

Posté : 18 mai 2022, 16:10
par or 1
Franchement pour moi c'est identique.
c'est le cas.
donc
if(!empty($var1))
et
if(!!!empty($var1))
c'est pareil.

pour ne pas se compliquer la vie, il ne devrait être utiliser que 2 écritures :
if(!empty($var1)) // est-ce que c'est plein
if(empty($var1)) // est-ce que c'est vide
pas de !! ni de !!! nécessaire ici.

Re: empty ou isset ?

Posté : 18 mai 2022, 16:19
par wisefun77
pour ne pas se compliquer la vie, il ne devrait être utiliser que 2 écritures :
if(!empty($var1)) // est-ce que c'est plein
if(empty($var1)) // est-ce que c'est vide
pas de !! ni de !!! nécessaire ici.
J'adooorre ne pas me compliquer la vie.
Merci je vais modifier mon code.

Re: empty ou isset ?

Posté : 18 mai 2022, 16:22
par wisefun77
ce code

Code : Tout sélectionner

// Conditions de traitement des balises reçues if(isset($_POST["balise"]) && !empty($_POST['new-asset']) && empty($_POST['old-asset'])) { // Si la variable new-asset n'est pas vide et si la variable old-asset est vide. $newasset =$_POST['new-asset']; echo $newasset. 'Premier IF new-asset seul'; } // Si la variable old-asset est pleine et si la variable new-asset est vide. elseif(isset($_POST["balise"]) && !empty($_POST['old-asset']) && empty($_POST['new-asset'])) {// Set session variables $oldasset= $_POST['old-asset']; echo $oldasset.'2 // ElseIF old-asset seul'; } // Si les deux variables new-asset et old-asset ne sont pas vides. elseif(isset($_POST["balise"]) && !empty($_POST['new-asset']) && !empty($_POST['old-asset'])) {// Set session variables $newasset =$_POST['new-asset']; $oldasset= $_POST['old-asset']; echo $newasset.$oldasset.'3// ElseIF old-asset and new-asset'; }
M'envoie directement dans le dernier elseIF>>>> XXX 3// ElseIF old-asset and new-asset |*()

Re: empty ou isset ?

Posté : 18 mai 2022, 16:25
par wisefun77
Ce code m'envoie dans le 1 et 2 et 1

Code : Tout sélectionner

// Conditions de traitement des balises reçues if(isset($_POST["balise"]) && !empty($_POST['new-asset'])) { // Si la variable new-asset n'est pas vide et si la variable old-asset est vide. $newasset =$_POST['new-asset']; echo $newasset. 'Premier IF new-asset seul'; } // Si la variable old-asset est pleine et si la variable new-asset est vide. elseif(isset($_POST["balise"]) && !empty($_POST['old-asset'])) {// Set session variables $oldasset= $_POST['old-asset']; echo $oldasset.'2 // ElseIF old-asset seul'; } // Si les deux variables new-asset et old-asset ne sont pas vides. elseif(isset($_POST["balise"]) && !empty($_POST['new-asset']) && !empty($_POST['old-asset'])) {// Set session variables $newasset =$_POST['new-asset']; $oldasset= $_POST['old-asset']; echo $newasset.$oldasset.'3// ElseIF old-asset and new-asset'; } // Function suite clique sur le bouton précédent. elseif(isset($_SESSION['Balises2'])){ $page='5'; precedent(); }
XXXPremier IF new-asset seul |*()

Re: empty ou isset ?

Posté : 18 mai 2022, 16:26
par Spols
Commence par afficher le contenu de tes 3 variables, et le résultat de empty($variable) et tire tes conclusions

Re: empty ou isset ?

Posté : 18 mai 2022, 16:33
par wisefun77
Ce code m'envoie continuellement dans le premier IF

Code : Tout sélectionner

// Conditions de traitement des balises reçues // Si les deux variables new-asset et old-asset ne sont pas vides. if(isset($_POST["balise"]) && isset($_POST['new-asset']) && isset($_POST['old-asset'])) {// Set session variables $newasset =$_POST['new-asset']; $oldasset= $_POST['old-asset']; echo $newasset.$oldasset.'3// ElseIF old-asset and new-asset'; } // Si la variable old-asset est pleine et si la variable new-asset est vide. elseif(isset($_POST["balise"]) && !empty($_POST['old-asset'])) {// Set session variables $oldasset= $_POST['old-asset']; echo $oldasset.'2 // ElseIF old-asset seul'; } // Si la variable new-asset n'est pas vide et si la variable old-asset est vide elseif(isset($_POST["balise"]) && !empty($_POST['new-asset'])) {// Set session variables $newasset =$_POST['new-asset']; echo $newasset. 'Premier IF new-asset seul'; }
XXX3// ElseIF old-asset and new-asset |*()