J'ai écris un code en "PHP 7.3.27-1~deb10u1 (cli) (built: Feb 13 2021 16:31:40) ( NTS )"
Je vérifie une requête super simple et souhaite configurer soit en "true" soit en "false" :
Soit je suis super-admin (root), soit je suis admin, soit je suis modérateur - je souhaite configurer une variable "avec status" $with_status à "false" pour afficher tous les contenus du site.
OU ^^ je suis membre ou internaute seulement (donc) et je configure la variable $with_status à "true".
Cela me permet "après" d'envoyer une requête SQL en demandant soit le contenu disponible (jc.content_right = 1) ou voir tous les contenu (où il faut être donc, authentifier et moderateur minimum) (jc.content_right = 0|5|8 donc sans envoyer jc.content_right)
Le truc le plus simple du monde ^^
Si une (ou plusieurs) des 3 demandes me retourne true alors je configure à false !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $with_status = (($root === true || $admin === true || $moderator === true) ? false : true); // pour la conpréhension j'ai ajouté des parenthèses ^^ - Info : parenthèses à mettre si vous écrivez la condition dans un echo :) $req_status = $with_status === true ? ' ' : ' AND jc.content_right = 1 '; echo '<br />'.$req_status.' - ';
//--
A titre d'information, je ne vais pas écrire/configurer la variable $with_status style de manière fausse !
Cela signifirait : je suis ROOT ET je suis ADMIN ET je suis MODERATEUR - La chose impossible dirais-je !!! Je ne peut pas être tout cela à la fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $with_status = $root === true && $admin === true && $moderator === true ? false : true;
Soit une personne est super-admin, soit elle est administratrice, soit elle est modératrice et donc elle (la condition) me renverrait toujourstrue !
//---
Les développeurs PHP ont un problème mental depuis 2.3 ans 4 ?:/ ou je rêve. J'avais une différence (il y a quelques jours) de retour entre and et && - et entre or et || fascinant ! Je vous aime les développeurs PHP - ceux qui créaient le language![]()
![]()
!
//---
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 <?php // J'ai des methods de ma classe user qui me retourne true ou false selon le status d'un utilisateur - donc vrai (et non pas 1) ou vide (rien et non pas 0) // Plus le status est fort les autres sont configurés en true jusqu'au status moderateur. // En étant authentifié (membre) : il peut-être soit super-admin, soit admin, soit modérateur (soit membre seulement). // je vous ai remplacé les method par de simple variables pour la simplicité de l'explication / de la demande. // ici je suis super-admin (donc admin / moderateur) $root = true; $admin = true; $moderator = true; // ici je suis admin (donc moderateur) $root = false; $admin = true; $moderator = true; // ici je suis moderateur $root = false; $admin = false; $moderator = true; // ici je suis internaute $root = ''; // ou false $admin = ''; // ou false $moderator = ''; // ou false //$with_status = $root == true || $admin == true || $moderator == true ? false : true; $with_status = $root === true || $admin === true || $moderator === true ? false : true; $req_status = $with_status === true ? ' ' : ' AND jc.content_right = 1 '; echo '<br />'.$req_status.' - '; $contents_req = 'SELECT jc.* FROM zw_contents jc WHERE (jc.content_id_tree = 1 ) '.$req_status.' ORDER BY jc.content_date_mod DESC LIMIT 0, 40'; echo '<br />'.$contents_req.' '; ?>
Romain
Partager