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