Mailinglisten-Archive |
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