[RESOLU] empty ou isset ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] empty ou isset ?

Re: [RESOLU] empty ou isset ?

par two3d » 19 mai 2022, 17:30

Oui j'ai pas lu la doc, désolé :mrgreen: si empty retourne un booléen, == suffit

Re: [RESOLU] empty ou isset ?

par wisefun77 » 19 mai 2022, 16:52

Que de plaisir que de lire vos échanges.
J'en apprends de plus en plus grâce à vous.

Re: empty ou isset ?

par or 1 » 19 mai 2022, 16:48

Au temps pour moi, je préfère "!true" que "true == false"

D'ailleurs au passage, vaut mieux utiliser ===
là, on compare le résultat de la fonction empty() à true ou false, pas true à false.
la fonction empty retourne true ou false, donc pas besoin de ===

pour strpos, la fonction peut retourner 0 ou null, là il faut comparer le type de la variable d'où === null ou !== null

Re: empty ou isset ?

par wisefun77 » 19 mai 2022, 16:32

Bonjour à tous,
En fait entre temps, avant de démissionner de mon CDD, j'ai voulu tester une autre solution.
Donc à la 51 ième solution. Cela fonctionne.
Je me suis basé sur les valeurs d'une variable.

Code : Tout sélectionner

<?PHP if(isset($_POST['balise'])){ // Set session variables $page='5'; $_SESSION["_PDT"]= $_POST['demg']; $_SESSION["Prt"]= $_POST['prt']; $_SESSION["Asset-New"]= $_POST['new-asset']; $_SESSION["Asset-Old"]= $_POST['old-asset']; $_SESSION["Time"]= $_POST['time']; //$_SESSION["Balises1"] = $_SESSION["Balises2"]; if($_POST['demg'] === 'REN'){ echo'ALL ASSET'; } elseif($_POST['demg'] === 'REP'){ echo'OLD ASSET'; } elseif($_POST['demg'] === 'DEM_PDT'||'PRT'||'NDO') { echo'NEWASSET'; } } ?>
C'est une solution qui fonctionne, mais ce n'est pas la solution à mon problème de base.
Un énorme merci à vous tous, et surtout pour votre franchise et toutes vos aide, et votre patience envers un nul de chez nul comme moi.

Re: empty ou isset ?

par two3d » 19 mai 2022, 16:20

Au temps pour moi, je préfère "!true" que "true == false"

D'ailleurs au passage, vaut mieux utiliser ===

Re: empty ou isset ?

par or 1 » 19 mai 2022, 13:47

d'où on met "== false" à "empty()" ?
cela peut être plus lisble de mettre cela, après c'est plus long à écrire, donc celui qui comprend n'en a pas besoin.

Re: empty ou isset ?

par wisefun77 » 19 mai 2022, 10:15

@two3d
On dirait une blague à chaque fois que vous posez des questions, d'où on met "== false" à "empty()" ?

Revoyez simplement le cours des isset et empty, ça vous aidera, on ne va réinventer la roue, prenez seulement deux minute pour lire comment ça fonctionne, ça fait deux fois qu'on vous le dis et à mon avis vous êtes parti pour continuer... Je prendrais plus la peine de répondre avec des liens vers la doc la prochaine fois.
Entièrement d'accord avec vous. Si je me trompe de code à vous envoyer!!! c'était un vieux test, je ne suis pas allé dans le bon dossier. Je vous présente mes excuses.

Re: empty ou isset ?

par two3d » 19 mai 2022, 09:45

On dirait une blague à chaque fois que vous posez des questions, d'où on met "== false" à "empty()" ?

Revoyez simplement le cours des isset et empty, ça vous aidera, on ne va réinventer la roue, prenez seulement deux minute pour lire comment ça fonctionne, ça fait deux fois qu'on vous le dis et à mon avis vous êtes parti pour continuer... Je prendrais plus la peine de répondre avec des liens vers la doc la prochaine fois.

Re: empty ou isset ?

par wisefun77 » 19 mai 2022, 09:25

Bonjour two3d,
Je comprends bien, mais ce que je ne comprends pas c'est pourquoi il ne lit pas les deux empty dans le dernier elseif.
Avec ce code je passe bien les deux premières étapes , mais quand les deux asset sont remplis il ne lit que le premier if.

Code : Tout sélectionner

<?php // Conditions de traitement des balises reçues if(isset($_POST['balise'])){ $page='5'; $_SESSION["_PDT"]= $_POST['demg']; $_SESSION["Prt"]= $_POST['prt']; $_SESSION["Asset"]= $_POST['new-asset']; $_SESSION["AssetOld"]= $_POST['old-asset']; $_SESSION["Time"]= $_POST['time']; // $_SESSION["Balises1"] = $_SESSION["Balises2"]; // Si la variable old-asset est vide >>> Donc la variable new-asset est pleine. if(empty($_SESSION["Asset"])==false ) { $_SESSION["Balises2"] = $_SESSION["_PDT"] ."_" . $_SESSION['Prt'] . " " . "< ASSET_" . $_SESSION["Asset"] . ">" . "< TPX_" . $_SESSION["Time"] . ">" ."]"; echo $_SESSION["Balises2"].'1 // asset seul'; } // Si la variable new-assett est vide >>> Donc la variable old-asse est pleine.//OK elseif(empty($_SESSION["AssetOld"])==false) {// Set session variables $oldasset= $_POST['old-asset']; echo $oldasset.'2 // ElseIF old-asset seul'; } // Si les deux variables sont pleines. elseif(empty($_SESSION["AssetOld"])==false && empty($_SESSION["Asset"])==false ) {// Set session variables $newasset =$_POST['new-asset']; $oldasset= $_POST['old-asset']; echo $newasset.$oldasset.'3// ElseIF old-asset and new-asset'; } }// FIN IF PRINCIPAL
Merci

Re: empty ou isset ?

par two3d » 19 mai 2022, 08:36

"!!!" n'existe pas, maximum "!" pour "n'est pas" et aucun pour "est"

Les bases :
https://www.php.net/manual/fr/language. ... ctures.php
https://www.php.net/manual/fr/language. ... ogical.php
https://www.php.net/manual/fr/language. ... arison.php

J'utilise isset puis je vérifie ce que l'utilisateur m'envoie pour éviter les attaques au maximum (ne jamais faire confiance à ce que l'utilisateur envoi, toujours vérifier que le champs correspond bien au format attendu).

https://www.php.net/manual/fr/function.isset.php

Utiliser empty permet de gagner du temps car elle vérifie si elle existe et si elle est pas vide.

https://www.php.net/manual/fr/function.empty.php

Re: empty ou isset ?

par Spols » 18 mai 2022, 19:18

// Si les deux variables new-asset et old-asset ne sont pas vides.
if(empty($_POST['new-asset']) && empty($_POST['old-asset']))

ceci me montre que tu n'a toujours rien compris.

isset et empty fonctionne de façon inversé
isset retournera true si la variable existe
empty retourne true si la variable est vide ou n’existe pas

Re: empty ou isset ?

par wisefun77 » 18 mai 2022, 17:14

Ce code fonctionne pour les deux "asset" remplis, et pour que le deuxième "asset" de rempli, mais pas pour que le premier "asset" rempli.

Code : Tout sélectionner

<?php // Conditions de traitement des balises reçues if(isset($_POST['balise'])){ $page='5'; $_SESSION["_PDT"]= $_POST['demg']; $_SESSION["Prt"]= $_POST['prt']; $_SESSION["Asset"]= $_POST['new-asset']; $_SESSION["AssetOld"]= $_POST['old-asset']; $_SESSION["Time"]= $_POST['time']; // $_SESSION["Balises1"] = $_SESSION["Balises2"]; // Si les deux variables ASSET sont pleines.. if($_SESSION["_PDT"] && $_SESSION["Asset"] && $_SESSION["AssetOld"]) { $_SESSION["Balises2"] = $_SESSION["_PDT"] ."_" . $_SESSION['Prt'] . " " . "< ASSET_" . $_SESSION["Asset"] . ">" . "< ASSET-OLD_" . $_SESSION["AssetOld"] . ">". " " . "< TPX_" . $_SESSION["Time"] . ">" ."]"; echo $_SESSION["Balises2"].'Tous les asset'; } // Si la variable old-asset est pleine et si la variable new-asset est vide. elseif($_SESSION["_PDT"] && $_SESSION["AssetOld"]) {// Set session variables $oldasset= $_POST['old-asset']; echo $oldasset.'2 // ElseIF old-asset seul'; } // Si la variable new-asset est pleine et old-asset est vide. elseif($_SESSION["_PDT"] && $_SESSION["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(); } ?>
Pourquouiiiii tant de haine avec les IF?????? |*()
Pourquoi le deuxième && $_SESSION["AssetOld"] n'est pas lu dans le IF???
if($_SESSION["_PDT"] && $_SESSION["Asset"] && $_SESSION["AssetOld"])

Re: empty ou isset ?

par wisefun77 » 18 mai 2022, 16:50

Ce code n'affiche rien.

Code : Tout sélectionner

if(isset($_POST['balise'])){ // Si les deux variables new-asset et old-asset ne sont pas vides. if(empty($_POST['new-asset']) && empty($_POST['old-asset'])) {// Set session variables $balise =$_POST['demg'];; $newasset =$_POST['new-asset']; $oldasset= $_POST['old-asset']; $variables = $balise. $newasset.$oldasset.'3// ElseIF old-asset and new-asset'; echo $variables; } // 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'; // } }// FIN IF PRINCIPAL
Il passe dans le premier elseif

Re: empty ou isset ?

par wisefun77 » 18 mai 2022, 16:40

voici le code des Trois balises

Code : Tout sélectionner

if(isset($_POST["balise"]) && isset($_POST['new-asset']) && isset($_POST['old-asset'])) {// Set session variables $balise =$_POST['demg'];; $newasset =$_POST['new-asset']; $oldasset= $_POST['old-asset']; $variables = $balise. $newasset.$oldasset.'3// ElseIF old-asset and new-asset'; echo $variables; }
affiche
REN Asset 1 Asset 2 3// ElseIF old-asset and new-asset
Donc c'est OK

Re: empty ou isset ?

par wisefun77 » 18 mai 2022, 16:34

Bonjour Spols,
Désolé je n'avais pas vu ton message.
Commence par afficher le contenu de tes 3 variables, et le résultat de empty($variable) et tire tes conclusions