Login mit PHP über LDAP - Verbesserungsvorschläge
Hallo Forum.
Also, wie der Titel es eigentlich schon sagt:
Habe es mit meinem jungen PHP-Wissen geschafft, ein Login über LDAP zum laufen zu bringen.
Jetzt ist das garantiert noch nicht brauchbar, nehm ich an, wäre über Verbesserungsvorschläge echt froh:
Habe die "Überprüfung" in eine Funktion geschrieben:
Habe es mit Cookies gelöst, die Werte gebe ich in einem Array zurück, dass ich sie nachher z.B. auch für ldap_search benutzen kann.
An jedem "Seitenanfang" rufe ich dann diese Funktion auf, und "setzte" den Inhalt mit:
Das if($login_check==true) kann ja irgendwo stehen.
Bin froh über alle Verbesserungsvorschläge.
Greetz, Lousek
[Edit masterG 20.01.2008 12:08]:
Ich hab mir erlaubt die codeschnippsel in einen Codeblock zu legen
Also, wie der Titel es eigentlich schon sagt:
Habe es mit meinem jungen PHP-Wissen geschafft, ein Login über LDAP zum laufen zu bringen.
Jetzt ist das garantiert noch nicht brauchbar, nehm ich an, wäre über Verbesserungsvorschläge echt froh:
Habe die "Überprüfung" in eine Funktion geschrieben:
function login_complete ($ldap_server)
{
if((isset($_COOKIE['cookie_username']) AND ($_COOKIE['cookie_passwort']))) {
$username = $_COOKIE['cookie_username'];
$passwort = $_COOKIE['cookie_passwort'];
$check_positive = 1;
} else {
if((isset($_POST['username']) OR ($_POST['passwort']))) {
if(empty($_POST['username']) OR empty($_POST['passwort'])) {
$array["login_complete"] = "Bitte fuellen Sie alle Felder aus. <a href='login.php'>Login</a><br>";
} else {
if((isset($_POST['username']) AND ($_POST['passwort']))) {
$username = $_POST['username'];
$passwort = $_POST['passwort'];
$check_positive = 1;
}
}
} else {
$array["login_complete"] = "Sie sind nicht eingeloggt: ";
}
}
if($check_positive==1) {
//----------------------------------------Login und Bind----------------------------------------
if (!($connect=@ldap_connect($ldap_server))) {
$array["login_complete"] = "Could not connect to ldap server<br>";
} else {
}
// Needed for W2003 AD..
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
if (!($bind=@ldap_bind($connect, $username, $passwort))) {
$array["login_complete"] = "Login oder Passwort falsch. <a href='login.php'>Login</a><br>";
} else {
setcookie("cookie_passwort", $passwort, time()+(60*60));
setcookie("cookie_username", $username, time()+(60*60));
$array["login_check"] = true;
}
}
$array["username"] = $username;
$array["passwort"] = $passwort;
$array["connect"] = $connect;
return $array;
}
An jedem "Seitenanfang" rufe ich dann diese Funktion auf, und "setzte" den Inhalt mit:
$login = login_complete ($ldap_server);
$login_complete = $login["login_complete"];
$username = $login["username"];
$passwort = $login["passwort"];
$login_check = $login["login_check"];
$connect = $login["connect"];
echo $login_complete;
if($login_check==true) {
//Inhalt wenn eingeloggt
} else {
//Inhalt wenn nicht eingeloggt
}
Das if($login_check==true) kann ja irgendwo stehen.
Bin froh über alle Verbesserungsvorschläge.
Greetz, Lousek
[Edit masterG 20.01.2008 12:08]:
Ich hab mir erlaubt die codeschnippsel in einen Codeblock zu legen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-Key: 78631
Url: https://administrator.de/contentid/78631
Ausgedruckt am: 28.03.2024 um 09:03 Uhr
2 Kommentare
Neuester Kommentar