Menupunkte im eingeloggten Zustand

  • Hallo,


    wie kann ich das in der Menubar umstellen, dass im eingeloggten Modus folgende 3 Menupunkte nicht mehr angezeigt werden?


    Gruß & Danke

  • Ich kenn leider dein System nicht, aber du könntest das via css erledigen.


    Im Template/output im login fall eine klasse hinzufügen die vielleicht hiddenentry oder ähnlich heißt.


    Dann im CSS die regel wie folgt definieren:


    .hiddenentry{
    display: none;
    }


    wär das einfachste

  • Wäre das mit einer If Abfrage öder ähnliches via php auch möglich?
    <if $user['usergroup'] != 1 then> </if>


    aber ich weiß nicht wie die if Abfrage bei mir heißen müsste das es funktioniert, wie kann ich das sehen?
    Danke ;)

  • Steht folgendes in der DB oder woher weiß ich ob es $user und "usergroup" heißt?


    PHP
    <?php if((int)$user['usergroup']!== 1) {?>hiddenentry<?php}?>
  • Steht folgendes in der DB oder woher weiß ich ob es $user und "usergroup" heißt?

    Das muss du schon selber wissen , was in deiner db steht ;)

    It's me, only me, pure michi

    RS 500 SAS G8 Ostern 19

    VPS: 50 G7 |B Ostern 2017|200 G8 Aktion| 200 G8

    WH: SmallEi | Adv17 Spezial Family |4000 SE|1000 WaD

  • Wie müsste das aussehen, bei meinen Benutzern in der DB sieht das so aus.


    PHP
    <?php if((int)$username['level']!== 1) {?>hiddenentry<?php}?>


    Danke ;)

  • ka wie du auf $user[usergroup] kommst
    so wie es aussieht hast du garkein feld usergroup in der db.
    Warum nicht die sessions benutzen?
    Mein Lösungsweg wäre folgender:
    Ich denke mal dass du mit Sessions arbeitest,
    also würde ich im loginscript

    PHP
    <?php $_SESSION[is_logged_in]==1; ?>


    setzen,
    dann würde die if im Menü folgendermassen aussehen

    PHP
    <?php if((intval($_SESSION['is_logged_in'])== 1) {?>hiddenentry<?php}?>


    wobei ich hier garnicht die css belasten würde sondern

    PHP
    <?php if((intval($_SESSION['is_logged_in'])== 1){ ?>
    <a href="login.php">login</a><?php } ?>


    und so das menü ausgeben

    It's me, only me, pure michi

    RS 500 SAS G8 Ostern 19

    VPS: 50 G7 |B Ostern 2017|200 G8 Aktion| 200 G8

    WH: SmallEi | Adv17 Spezial Family |4000 SE|1000 WaD

    Edited once, last by extremmichi ().

  • Danke, ja so wäre es auch top müsste das dann wie folgt aussehen:


  • nicht ganz :(
    so wird das Menü ja immer angezeigt

    PHP
    <?php $_SESSION[is_logged_in]==1; ?>


    gehört in dein loginscript
    also da wo dein loginformular ausgewertet wird und
    wenn alles richtig war der user eingeloggt wird


    ***edit***
    Böser Fehler :D
    es sollte natürlich :

    PHP
    <?php if((intval($_SESSION['is_logged_in'])!== 1){ ?><li><a href="/login.html" class="login">Login</a></li>
                                <li><a href="/register.html" class="registrieren">Registrieren</a></li>
                                <li><a href="/forgot_password.html" class="passwort">Passwort</a></li><?php } ?>


    heissen ;)

    It's me, only me, pure michi

    RS 500 SAS G8 Ostern 19

    VPS: 50 G7 |B Ostern 2017|200 G8 Aktion| 200 G8

    WH: SmallEi | Adv17 Spezial Family |4000 SE|1000 WaD

  • Darf ich ehrlich sein?
    Du solltest dir vielleicht überlegen ob du die Anwendung nicht komplett überarbeiten möchtest.
    In deinem Fall würde sich vielleicht ein ganz anderer Ansatz lohnen.
    Eine Template Engine wie Smarty könnte dir das leben ungemein vereinfachen.
    Und du würdest keine Business Logik in den Templates haben.
    Außerdem hoffe ich, das du bei der DB Abfrage die Varialben escapsed/filterst.

  • Ja stimmt, Smarty wäre gar nicht schlecht :)


    Was meinst mit "escapsed/filterst", meinst du die Menubar Rendern und in externe files ablegen und durch folgendes abfragen?


    PHP
    <?php
    $navigation = (int)$username['level']!==1) ? dateipfad/nav_loggedin.php : dateipfad/nav_logout.php
    echo $navigation;
    ?>
  • Meinte escaped
    hab mich vertippt sorry.
    Mit mysql würde man mysql-real-escape-string (http://php.net/manual/en/funct…ql-real-escape-string.php) verwenden.
    Problem ist, das wenn man ungefilterte Variablen direkt in die Datenbank einließt es zu sql injections kommen kann.
    (http://de.wikipedia.org/wiki/SQL-Injection)
    Ich selbst habe mir eine Klasse geschrieben die mir einen gefilterten Zugriff ermöglicht.
    Außerdem kann ich dort auch auf verschiedene Datentypen filtern (Rückgabe als Integer oder so)

  • So habe ich es jetzt eingebaut:


    PHP
    <?php if((intval($_SESSION['is_logged_in'])!== 1){ ?><li><a href="/login.html" class="login">Login</a></li>
    							<li><a href="/register.html" class="registrieren">Registrieren</a></li>
    							<li><a href="/forgot_password.html" class="passwort">Passwort</a></li><?php } ?>


    Habs blos noch nicht eingebaut, da sonst nur eine weiße Seite sichtbar ist.


    jetzt bräuchte ich noch den anderen Script wo ich noch nicht genau weiß wohin :D


  • Hallo,


    habs Problem nun gefunden warum eine weiße Seite angezeigt wurde hier war eine ( zu viel drin :)


    Quote

    <?php if(intval($_SESSION['is_logged_in'])!== 1){ ?>


    jetzt hab ich noch das Problem mit diesem hier wohin das genau sollte:

    Quote

    <?php $_SESSION[is_logged_in]==1; ?>


    würde mich nochmals um Hilfe freuen.


    Danke :)

  • Meinst du den LoginScript wo ich hochgeladen habe, oder diesen?

    PHP
    <?php if((intval($_SESSION['is_logged_in'])!== 1){ ?>


    PHP
    <?php $_SESSION[is_logged_in]==1; ?>