PHP und LDAP Teil 4

Teil 4:
Jetzt könnte man das ganze noch in eine Datenbank speichern damit auch verschiedene Rechte gesetzt werden können.

Dazu gebe ich noch ein kleines Beispiel wie die Datenbank aufgebaut sein könnte.

!Wichtig ich verwende hier meine eigene MySql geschriebene Klasse!

query("SELECT * FROM user_system WHERE user_system_username like '$username'");

//Überprüfung ob Einträge gefunden
// Kleiner als 1
 if ($mydb->count() query("INSERT INTO user_system (user_system_name, user_system_street,
            user_system_zipcode,user_system_tele,user_system_mail,user_system_username,
            user_system_pw,user_system_rights) VALUES ('" . $info[0]['cn'][0] . "','"
 . $info[0]['streetaddress'][0] . "','" . $info[0]['postalcode'][0] . "',
                '" . $info[0]['telephonenumber'][0] . "','" . $info[0]['mail'][0] . "','" . $username . "',MD5('" . $passwd . "'),1);");

//Hier könnte man dann die Session Varibalen wie folgt Setzen

//Da wir nun eine ID in der Datenbank haben nehmen wir auch diese
            $_SESSION["user_id"] = mysql_insert_id();
            $_SESSION["user_username"] = $username;
            $_SESSION["user_name"] = $info[0]['cn'][0];
            $_SESSION["user_rights"] = "1";
            $_SESSION["logged"] = $_POST['logged'];

        } else {
 //Ist es Größer 1 oder gleich 1 nehmen wir einfach aus der vorherigen Select Abfrage
//die Daten und speichern sie in eine Variable.
            $data = $mydb->fetchRow();

//Dann setzen wir auch wieder die Session nur diesmal mit den Daten aus der Datenbank
            $_SESSION["user_id"] = $data["user_system__ID"];
            $_SESSION["user_username"] = $data["user_system_username"];
            $_SESSION["user_name"] = $data["user_system_name"];
            $_SESSION["user_rights"] = $data["user_system_rights"];
            $_SESSION["logged"] = $_POST['logged'];
        }
//Und sagen dem Ajax Script wieder alles OK
        echo 1;
//Und schließen die LDAP Verbindung wieder.
        ldap_close($ds);
?>

Da wir nun den User in der Datenbank haben ergibt sich für uns auch die Möglichkeit, falls der AD Server mal nicht erreichbar ist einen Lokalen Login durchzuführen.
Dazu ergänzen wir das Script um folgende Zeilen.

 query("SELECT * FROM user_system WHERE user_system_username like '$username' AND user_system_pw = MD5('$passwd')"); if ($mydb->count() > 0) { // Benutzerdaten in ein Array auslesen. $data = $mydb->fetchRow(); // Sessionvariablen erstellen und registrieren echo 1; $_SESSION["user_id"] = $data["user_system__ID"]; $_SESSION["user_username"] = $data["user_system_username"]; $_SESSION["user_name"] = $data["user_system_name"]; $_SESSION["user_rights"] = $data["user_system_rights"]; $_SESSION["logged"] = $_POST['logged']; } } else { echo 0; } } ?> 

Schreibe einen Kommentar