Ankündigung

Einklappen
Keine Ankündigung bisher.

Link nur mit Hilfe von rechten ausführen können.

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Link nur mit Hilfe von rechten ausführen können.

    Hallo liebe Nutzer,
    ich bin Student und muss im Rahmen eines Projekts, um die Systementwicklung eines "Mitarbeiterbearbeitungs-Tool" dreht, PHP und phpMyAdmin anwenden. Ich selbst bin ein blutiger Anfänger wenn es um PHP geht, allerdings kann ich den Code aufgrund meiner Erfahrung relativ gut nachvollziehen. Jetzt stellt sich bei mir folgende Frage: Ich habe in meinen HTML Code ein PHP Skript implementiert, mit welchem sich unterschiedliche Nutzer einloggen können und eine unterschiedliche Rolle ausführen (admin,owner,berabeiter, bearbeiteter). Nun frage ich mich, ob es möglich ist gewisse Links(keine Formulare) nur mit gewissen Zugriffsrechten zu öffnen.
    Ich wäre dankbar wenn mir das jemand erläutern könnte.


    Der PHPCode wäre

    PHP-Code:
    <?php
    require('inc/config.php');
    if(!empty(
    $_SESSION)){
    $currentUser $_SESSION['user'];
    if(!empty(
    $_POST) && isset($_POST['mitarbeiter_auswählen'])){
    if(
    $currentUser->role == "admin"){
    header('Location: page2.php');
    } else {
    echo 
    "<script type='text/javascript'>alert('Sie haben dazu keine Berechtigung');</script>";
    }
    }
    ?>
    Der zugehörige HTML Link ist folgender Link:
    HTML-Code:
    <a href="page2.php">Auswahl Mitarbeiter</a>
    Mir ist klar, das das mit $_POST nicht funktionieren kann, da es sich um einen Link und nicht um einen Button handelt.

    Der php-Code in page2.php lautet testweise:

    PHP-Code:
    <?php
        
    require('inc/config.php');
        if(!empty(
    $_SESSION)){
    $currentUser $_SESSION['user'];
    if(!empty(
    $_POST) && $currentUser->role == 'admin'){
    echo 
    "Hat funktioniert!",
                 
    header('Location: session2.php');
            }
        }
        else{
    echo 
    "<script type='text/javascript'>alert('Zugriff verweigert! Sie werden zur Home-Seite weitergeleitet!');location='session2.php';</script>";
    }
    ?>

    Viele Grüße,
    Jonas

  • #2
    Du leitest dann halt nicht um, sondern machst was das nur der User mit den Rechten darf.
    [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

    Kommentar


    • #3
      Oder nur Links anzeigen die der Anwender auch nutzen darf.

      Kommentar


      • #4
        (admin,owner,berabeiter, bearbeiteter)
        entweder deutsch oder englisch, aber bitte keinen Mix, das macht man nicht.

        Dann brauchst du eine Zuordnungstabelle mit link_to_role wo du die Verknüpfung drin hast, aus welcher Gruppe welcher Link ausgeführt werden darf.

        Javascipt wird auf dem Client ausgeführt und PHP auf dem Server, Javascript mit PHP auszuliefern ist halt sehr Laienhaft und sollte vermieden werden. Packe Javascript in Javascript-Dateien.

        Halte dich an das EVA-Prinzip, siehe auch den Artikel in der Wissenssammlung dazu.

        EDIT: Nachtrag
        PHP-Code:
        if($currentUser->role == "admin"
        currentUser ist hier kein Objekt, sondern ein assoziatives Array und dazu global, siehe auch Sessions.
        Daher ist der Code fehlerhaft, schalte beim Entwickeln auch immer das Error-Reporting ein und verwende den typsicheren Vergleich mit ===.

        Kommentar

        Lädt...
        X