tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
742
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Jan 2002
    Ort
    Arnsberg -> Sauerland -> NRW
    Beiträge
    259
    Ich erklär das jetzt erst einmal.
    Hab' nen kleinen login geschrieben mit session id
    PHP-Code:
    <?php
    session_start 
    ();

    // prüfen, ob user und datei existieren
    if (file_exists("./member_dateien/$username")) {
        
    $user_dat fopen("./member_dateien/$username""r");
        
    $user_dat_inhalt file("./member_dateien/$username");
        
    fclose ($user_dat);

        
    // passwörter vergleichen
        
    if ($user_dat_inhalt[1] == $pw) {

            
    // username & passwort waren richtig
            
    $userdaten true;
            
    // variable für session erstellen (user einloggen)
            
    $user_eingeloggt true;

        } else {
            
    $userdaten false;
            
    $user_eingeloggt false;
            echo 
    "passwort falsch";
        }

    } else {
        echo 
    "user existiert nicht";
        
    $userdaten false;
        
    $user_eingeloggt false;
    }

    // variable $user_eingeloggt in der session registrieren
    session_register ("user_eingeloggt");
    ?>
    Soweit passt ja alles, nur wie bekomme ich es hin, dass z.B. ein der eine user nur in die area 1 reinkann, während der andere alles machen kann (z.b. news posten und der erste nur seine benutzerdaten und nicht auch die von anderen ändern kann).
    Ich hab da im mom keine Idee

    Bitte helft mir

    Edit: Noch ein Beispiel - user a darf sein profil ändern, aber nicht das von user b, da dazu user lvl 3 nötig wäre, er aber nur 2 ist. mit 4 dürfte er z.b. auch news posten

    Könnte ich das z.b. in ner text datei bei der anmeldung speichern (standart user lvl 1), das wird dann vom admin entsprechend geändert und die variable $inhalt[x] wird dann zur globalen var gemacht und auf jede seite, ohne sie per ?user_lvl=$inhalt[x] aufrufen zu müssen weitergegeben ?

    Grüße, Morph
    Geändert von Morph (20.02.02 um 20:32 Uhr)
     
    nothing

  2. #2
    KMX-Robin KMX-Robin ist offline Mitglied Gold
    Registriert seit
    Feb 2002
    Ort
    Frankfurt
    Beiträge
    127
    An deiner Stelle würd ich eine Datei anlegen, die alle Accounts und ihre Rechte gespeichert hat.

    z.B. so

    Nickname Access
    Nickname Access
    Nickname Access
    Nickname Access

    Bei Access würd ich ein Bit-Wert nehmen. z.B. wie folgt
    1 -> darf seine eignen einstellungen bearbeiten
    2 -> darf neue mitglieder anlegen
    4 -> darf fremde mitglieder details bearbeiten
    8 -> Administrator

    Dann zählst Du alle Bit-Werte zusammen .. in deinem Fall als Administrator also 1+2+4+8 = 15. Die 15 speicherst Du dann bei Deinem Nick unter Access ...

    Wenn sich ein User einloggst holst dir den Wert ... und schaust, ob er die entsprechenden Rechte hat.

    z.B. so

    if($user_access & 1) { darf seine eignen einstellungen bearbeiten }
    if($user_access & 2) { darf neue mitglieder anlegen }
    if($user_access & 4) { darf mitglieder details bearbeiten }
    etc...

    ich hoffe ich hab es verständlich erklärt.
    Rob
     
    KMX designs - enjoy the difference
    www.kmx-designs.de & www.kmx.de

  3. #3
    Registriert seit
    Nov 2001
    Beiträge
    393
    Eigentlich ist schon fast alles gesagt. Aber möchte noch was zu der Sache mit dem Profilediting sagen.
    Das kannst du überprüfen in dem du folgendes abfragst
    PHP-Code:
    if ($user_level == || $owner == $logged_user)
    {
      
    //Profil darf geändert werden
    }
    else
    {
      
    // Profil Editing nicht erlaubt

    Hoffe das hilft

    So Long
    TheVirus
     
    +-------------------------------------+
    |Never underestimate the power of F1. |
    +-------------------------------------+

  4. #4
    Registriert seit
    Jan 2002
    Ort
    Arnsberg -> Sauerland -> NRW
    Beiträge
    259
    Ahso die idee mit dem addieren ist gut - Danke an euch

    Werds heut nachmittag ma zu hause ausprobiern

    Grüße, Morph
     
    nothing

  5. #5
    Registriert seit
    Jan 2002
    Ort
    Arnsberg -> Sauerland -> NRW
    Beiträge
    259
    Hab mir das mit dem user access nochmal genau durch den kopf gehen lassen - die idee ist schon ziemlich gut, nur wie gebe ich die variable, in der die bits addiert wurden, weiter ? weil muss ja was zum vergleichen haben ( if($user_access == 2) ... if($user_access == 15) ...)

    Die evtl zu globalen variable deklarieren ? Per ...&user_access=$blub weiterzugeben ist ja schwachsinn, dann bräucht ich ja garkein access check
    Danke im vorraus

    Grüße, Morph
     
    nothing

  6. #6
    KMX-Robin KMX-Robin ist offline Mitglied Gold
    Registriert seit
    Feb 2002
    Ort
    Frankfurt
    Beiträge
    127
    mm ... ich würde die variable bei jedem seitenaufruf neu auslesen aus der File.

    bzw - du machst einen Fehler.

    Du darfst nicht schreiben if($user_access == 15) ... genau deshalb gibt es ja Bit-Operatoren ... sondern z.B. if($user_access & 2) ..

    Ich erklär es nochmal
    2 hoch 0 = 1 -> darf seine eignen einstellungen bearbeiten
    2 hoch 1 = 2 -> darf neue mitglieder anlegen
    2 hoch 3 = 4 -> darf fremde mitglieder details bearbeiten
    2 hoch 4 = 8 -> Administrator
    etc

    Wichtig ist, du immer den letzten Wert mal 2 nimmst ******!! der nächste punkt wäre z.B. 16 .. dann 32

    Un nun zählst du die werte zusammen ... wenn jemand z.b. nur die Details fremder bearbeiten darf und neue accounts erstellen darf, rechnest du wie folgt.

    2 + 4 = 6

    6 speicherst du unter Access

    und nun darfst du NICHT if($user_access == 6 ) schreiben, sondern
    if($user_access & 2) -> true
    if($user_access & 4) -> true
    alle anderen access if anweisungen sind dann false.

    so .. wenn du noch fragen hast, frag
    Rob
     
    KMX designs - enjoy the difference
    www.kmx-designs.de & www.kmx.de

  7. #7
    Registriert seit
    Jan 2002
    Ort
    Arnsberg -> Sauerland -> NRW
    Beiträge
    259
    Erstmal danke für die erklärung zu den bit operatoren ... kannte ich noch garnicht

    Jo hab noch fragen - bin ja auch ein schwerer fall *g*
    Also: wenn ich des auf jeder seite, die sonen check braucht, auslesen soll, woher soll ich denn dann den user kennen, der die seite aufruft und dementsprechend weis ich auch garnicht, welchen user mit welchen rechten ich auslesen soll - ich frag ja immer ob eine session true oder false ist um dem user eintritt zu gewähren
    Und da ist das problem - wie soll ich denn, wenn ich nur ne session aufrufe und prüfe ob true oder false dann noch herausfinden, welcher user die seite dann aufruft ?
    weil die seitenaufrufe sind bei mir so -> blub.php?go=clan_login_form.php -> ...?go=clan_login.php [wenn userdaten richtig dann gehts per weiterleitung weiter] -> ...?go=clan_intern.php&[hier sind dann die sess daten dran] [mit "session abfrage"] -> z.b. ...?go=member_edit.php[session daten]

    Grüße, Morph
     
    nothing

  8. #8
    KMX-Robin KMX-Robin ist offline Mitglied Gold
    Registriert seit
    Feb 2002
    Ort
    Frankfurt
    Beiträge
    127
    mm ... ganz einfach. gib jedem User eine ID .. kannst auch den Nick nehmen wenn du willst ... und diese ID (nick) speicherst du in deiner session ab

    session_register (user_id);

    easy
     
    KMX designs - enjoy the difference
    www.kmx-designs.de & www.kmx.de

  9. #9
    Registriert seit
    Jan 2002
    Ort
    Arnsberg -> Sauerland -> NRW
    Beiträge
    259
    Cool Rob' - Tausend mal Danke
    Das ist genau das, was ich gesucht hab' *freu*

    Grüße, Morph
     
    nothing

  10. #10
    KMX-Robin KMX-Robin ist offline Mitglied Gold
    Registriert seit
    Feb 2002
    Ort
    Frankfurt
    Beiträge
    127
    hehe ... das freut mich
     
    KMX designs - enjoy the difference
    www.kmx-designs.de & www.kmx.de

Ähnliche Themen

  1. Nur bestimmte Links zulassen, bzw Validierung
    Von typhoch2 im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 09.03.10, 19:00
  2. nur bestimmte Zeichen zulassen...
    Von ruNN0r im Forum PHP
    Antworten: 2
    Letzter Beitrag: 23.05.08, 21:21
  3. Antworten: 2
    Letzter Beitrag: 28.11.06, 18:26
  4. bestimmte URL zulassen
    Von makitaman im Forum PHP
    Antworten: 16
    Letzter Beitrag: 16.05.05, 10:53
  5. Nur bestimmte Tasten in einer Component zulassen (Textfeld)
    Von Vatar im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 7
    Letzter Beitrag: 19.04.05, 13:36