Bonjour, comme indiqué dans le titre je souhaites afficher un lien que pour un utilisateur en particulier qui serai l'administrateur mais je n'y arrive pas, j'ai essayer quelques codes que j'ai trouvé mais aucun ne fonctionne sauf qui m'affiche ce que je veut mais à tous les utilisateurs

Voici le code qui fonctionne mais pas correctement

<?php
    $_SESSION['user_rang'] = '2';
    {
        echo '
            <p class="text-small" style="text-align:left">Administration</p>
            <button onclick="showAdmin()" class="button-menu icon-left  no-border" style="display: block; width: 100%;">
                <span class="sub-header no-margin text-light text-small">Dashboard adminstrateur</span> <span class="icon mif-user-md"></span>
            </button>
        ';
    }
?>

Merci par avance.

23 réponses


Lartak
Réponse acceptée

C'est normal alors, les infos de l'utilisateur sont dans la clé utilisateur, modifies par :

<?php if (isset($_SESSION['utilisateur']['user_rang']) && $_SESSION['utilisateur']['user_rang'] == 2): ?>
    <p class="text-small" style="text-align:left;">Administration</p>
    <button onclick="showAdmin()" class="button-menu icon-left  no-border" style="display: block; width: 100%;">
        <span class="sub-header no-margin text-light text-small">Dashboard adminstrateur</span> <span class="icon mif-user-md"></span>
       </button>
<?php endif; ?>

Bonsoir,

Avec une condition, cela ira mieux.

<?php
    if($_SESSION['user_rang'] == '2')
    {
        echo '
            <p class="text-small" style="text-align:left">Administration</p>
            <button onclick="showAdmin()" class="button-menu icon-left  no-border" style="display: block; width: 100%;">
                <span class="sub-header no-margin text-light text-small">Dashboard adminstrateur</span> <span class="icon mif-user-md"></span>
            </button>
        ';
    }
?>

Si vous ne savez pas faire cet élément basique, je vous invite à revoir les bases du php

Il faut mettre un if pour tester une condition

J'ai fait comme vous avez dit mais cela ne fonctionne pas, même avec le 'if'.

rajoute un else ( sinon ) si le rang est inferieur a 2 il affiche rien lol

<?php
    if($_SESSION['user_rang'] == 2){
        echo "
            <p class="text-small" style="text-align:left;">Administration</p>
            <button onclick="showAdmin()" class="button-menu icon-left  no-border" style="display: block; width: 100%;">
                <span class="sub-header no-margin text-light text-small">Dashboard adminstrateur</span> <span class="icon mif-user-md"></span>
            </button> " ;
    }
    else($_SESSION['user_rang'] < 2){
    echo " " ;
    }
?>

Tu fais beaucoup de faute comme sur text-align:center tu oublie le " ; "

Il m'a sortir une erreur de ce genre :
Parse error: syntax error, unexpected '{' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\accueil\head.php on line 418

Tu peut nous donner cette fameuse ligne s'il te plait ?

else($_SESSION['user_rang'] < 2){

Essaye sa , alors

else($_SESSION['user_rang'] == 1){

Rien ne fonctionne et quand je vais sur mon compte administrateur qui lui est à un rang de 2 il m'affiche une erreur or si je me connecter en tant que utilisateur en rang 0 il me l'affiche.

Bah c'est normal le rang d'un utilisateur c'est le quelle ? si c'est 0 tu change par :

else($_SESSION['user_rang'] == 0){

Bonsoir.

<?php if (isset($_SESSION['user_rang']) && $_SESSION['user_rang'] == 2): ?>
    <p class="text-small" style="text-align:left;">Administration</p>
    <button onclick="showAdmin()" class="button-menu icon-left  no-border" style="display: block; width: 100%;">
        <span class="sub-header no-margin text-light text-small">Dashboard adminstrateur</span> <span class="icon mif-user-md"></span>
       </button>
<?php endif; ?>

Aucun besoin d'un else dans ce cas là.

else($_SESSION['user_rang'] == 0){
n'a pas une syntaxte correcte. Il faut plutôt faire
elseif($_SESSION['user_rang'] == 0){.

Remarque d'un point de vue syntaxique uniquement, je n'ai pas regardé la logique du code.

Normal que rien ne marche, conditions mal faite, else inutile, sans oublié les " qui en sont pas échapé... avec la solution de Lartak ça devrait être bon.

Merci Lartak pour ton idée sauf que rien ce passe , rien ne s'affiche dans les deux cas que je soit admin ou pas, et j'ai bien testé si je met :

<?php if (isset($_SESSION['user_pseudo']) && $_SESSION['user_pseudo'] == admin): ?>
    <p class="text-small" style="text-align:left;">Administration</p>
    <button onclick="showAdmin()" class="button-menu icon-left  no-border" style="display: block; width: 100%;">
        <span class="sub-header no-margin text-light text-small">Dashboard adminstrateur</span> <span class="icon mif-user-md"></span>
       </button>
<?php endif; ?>

Mais rien, je pense que sa peut venir de ma configuration de mon serveur local ou autres programmation de site web, merci quand beaucoup pour vos aides ;) si j'ai bessoin je reviendrai :D

Est-ce que tu as regardé ce que vaut ta variable de session ?

c'est à dire ?

Mets ceci avant la condition :

<pre><?= var_dump($_SESSION) ?></pre>

Et montres nous ce que ça retourne.

Voilà ce que sa m'affiche :

array(12) {
["form_mdp_verif"]=>
string(0) ""
["mdp_info"]=>
string(0) ""
["form_mail"]=>
string(0) ""
["mdp_verif_info"]=>
string(0) ""
["mail_info"]=>
string(0) ""
["form_mail_verif"]=>
string(0) ""
["form_mdp"]=>
string(0) ""
["pseudo_info"]=>
string(0) ""
["form_pseudo"]=>
string(0) ""
["mail_verif_info"]=>
string(0) ""
["reponse_nfo"]=>
string(0) ""
["utilisateur"]=>
array(14) {
["user_id"]=>
string(2) "55"
[0]=>
string(2) "55"
["user_nom"]=>
string(22) "DEVELOPPEMENT WINBOARD"
[1]=>
string(22) "DEVELOPPEMENT WINBOARD"
["user_pseudo"]=>
string(3) "dev"
[2]=>
string(3) "dev"
["user_mdp"]=>
string(32) "d41d8cd98f00b204e9800998ecf8427e"
[3]=>
string(32) "d41d8cd98f00b204e9800998ecf8427e"
["user_rang"]=>
string(1) "0"
[4]=>
string(1) "0"
["user_mail"]=>
string(0) ""
[5]=>
string(0) ""
["reponse"]=>
NULL
[6]=>
NULL
}
}

Merci super, sa fonctionne sans vous sa n'aurai pas fonctionner, et je n'aurai pas pu faire ce que je voulait.

De rien, avec plaisir.