Login mit Text und Rechten

d4k4

Erfahrenes Mitglied
ums kurz zu machen :

PHP:
<?php
if ($name AND $pw != ""){
session_start ();

if (file_exists("$name")) {
    $datei = fopen("$name", "r");
    $inhalt = file("$name");
    fclose ($datei);

    if ($inhalt[0] == $pw) {

        $userdaten = true;
        $user_eingeloggt = true;
        echo "Login erfolgreich";
        
        $access_file = "access.dat";
        $access = fopen("$access_file", "r");
        $name = file($access_file);
        fclose ($access);
        
       if($name & 3){
       include("admin.php");
       }
       if($name & 2){
       include("user.php");
       }


    } else {
        $userdaten = false;
        $user_eingeloggt = false;
        echo "Passwort falsch";
    }

} else {
    echo "User existiert nicht";
    $userdaten = false;
    $user_eingeloggt = false;
}
}
session_register ("user_eingeloggt");
?>

So die Rechte hab ich jeweil mit Nick Zahl gespeichert. Nur ruft er jetzt nicht die user.php auf wenn ein User mit Stufe 2 sich anmeldet.
Irgendwelche Ideen?
 
PHP:
       if($name & 3){
       include("admin.php");
       }
       if($name & 2){
       include("user.php");
       }

Zwei Fehler:
1) Die Bedingungen sind falsch.
2) & ist kein Vergleichoperator sondern ein Bit-Operator

& 2 und & 3 ergeben beide "Wahr" sobald etwas in $name steht. Es wird einfach nur der Wert von $name um 3 bzw. 2 Bits versetzt.
Du musst eine Variable setzen und dann abfragen
PHP:
  if ($name!=""&&$zugang==3) { 
  ...

Gruß
evoc
 
guckst du hier
KMX - Robin nutzt die Rechteverwaltung auch mit einer access datei. ich habs nurs os gemacht wies da geschrieben stand
 
Schön,

ist ganz tricky was er da macht, allerdings musst du dann die Zeile in $name Ansprechen wo du den Zugangslevel festlegst. Wenn du im aktuellen Script mal $name ausgibst wirst du nur "Array" erhalten. Du musst also wie bei
PHP:
 if ($inhalt[0] == $pw)
das Element im Array angeben, wo der Zugangslevel steht(maybe $name[1]?).

Gruß
evoc
 
danke für die hilfe habs jetzt ein bischen ander gemacht und klappt wunderbar. poste mal für interessierte :

PHP:
if ($name AND $pw != ""){

        $array = file("access.dat");

  for($i=0;$i<count($array);$i++){
    $daten = explode(" - ",$array[$i]);
    if($name==$daten[0] && $pw==$daten[1] && $daten[2]==3){
      $eingeloggt = true;
      include("admin.php");
    }
      if($name==$daten[0] && $pw==$daten[1] && $daten[2]==2){
      $eingeloggt = true;
      include("user.php");
    }
    if($name==$daten[0] && $pw!=$daten[1]){
      $eingeloggt = false;
      $falsches_passwort = true;
    }
  }

  if($eingeloggt) echo "Erfolgreich eingeloggt";
  else{
    echo "Konnte nicht einloggen...";
  }
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück