lousek
Goto Top

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:
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;
}      
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:
$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

Content-Key: 78631

Url: https://administrator.de/contentid/78631

Ausgedruckt am: 28.03.2024 um 09:03 Uhr

Mitglied: Lousek
Lousek 20.01.2008 um 21:34:57 Uhr
Goto Top
Jeps, danke, sry, habe sonst noch nicht code hier geschrieben? muss ich einfach <code type="php"> schreiben?

Lousek
Mitglied: masterG
masterG 26.01.2008 um 11:19:03 Uhr
Goto Top
ganz genau face-wink

masterG