phpbar.de logo

Mailinglisten-Archive

[php] Login mit PHP mit Werten aus LDAP-Directory

[php] Login mit PHP mit Werten aus LDAP-Directory

Sorin Marti php_(at)_phpcenter.de
Thu, 11 Apr 2002 14:09:56 +0200


Hi zusammen,

Ich bin ein PHP-Neuling. Nichts desto trotz möchte ich folgendes
ausprobieren. Ich habe einen kleinen Webkalender programmiert, er
funktioniert auch ziemlich gut. Dieser Kalender ist für mehrere User
ausgelegt, ich möchte also ein Login-Formular machen, welches den
Benutzernamen und das Passwort abfragt. Folgenden Programmcode habe ich
bisher geschrieben:

<?php

//Formular erstellen

echo "<h1>WEBCALENDAR</h1>";
echo "<FORM ACTION=\"$PHP_SELF\" METHOD=\"POST\">";
echo "<TABLE><TR><TH>Ihr Login:</TH><TH><INPUT TYPE=\"text\"
NAME=\"login\"></TH></TR>";
echo "<TR><TH>Ihr Passwort:</TH><TH><INPUT TYPE=\"password\"
NAME=\"password\"></TH></TR>";
echo "<TR><TH></TH><TH><INPUT TYPE=\"submit\" NAME=\"lookup\"
VALUE=\"SUBMIT\"><BR></TH></TR></TABLE>";
echo "</BR></FORM>";

//Verbindung herstellen
ldap_bind(ldap_connect("ldap.semafor.ch")); $search_id =
ldap_search(ldap_connect("ldap.semafor.ch"),"o=ch","uid=$login");
$result_array = ldap_first_entry(ldap_connect("ldap.semafor.ch"),
$search_id);
$results =
ldap_get_values(ldap_connect("ldap.semafor.ch"),$result_array, "uid");


if($results==false){echo "Falsches login";}
if($results)
{
 if($login!="")
   {
     if($results[0]==$login)
   {
     echo "Ihr login ($login) ist richtig";
   }
     else{echo "Falsches Login <p>";}
   }
}

?>

Die Abfrage funktioniert zwar (Wenn benutzer nicht vorhanden dann -->
Falsches Login) aber ich möchte nun (nachdem das Login als richtiger
Wert erkannt wurde) das sazugehörige Passwort abfragen und mit dem
eingegebenen Vergleichen. Doch schon das vergleichen funktioniert nicht,
denn im ldap - Directory ist das Passwort (userpassword) als Binary
abgespeichert...

Wie kann ich ein sicheres Login programmieren?
Wie vergleiche ich die Eingabe ("String") mit der Binary?
Bin ich auf dem richtigen Weg?
Gibt's schon so was in der Art?

Bitte helft mir, wenn ihr irgendwas wisst...

Grüsse und danke im Voraus

Sorin Marti, Schweiz


php::bar PHP Wiki   -   Listenarchive