pisze skrypt, w ktorym bede potrzebowal autoryzacji uzytkownia. Autoryzacja ma sie odbywac na takiej zasadzie:
czesc do logowania:
- uzytkownik wpisuje do formularza login i haslo, ktorym loguje sie do domeny
- dane z formularza sprawdzane sa na kolejnej stronie przez skrypt, ktory sprawdza, czy uzytkownik znajduje sie w bazie
- jesli tak, to skrypt probuje polaczyc sie z serwerem ldap i zautoryzowac uzytkownikiem i haslem z formularza
- jesli autoryzacja przebiegla pomyslnie, to skrypt generuje Cookie, lub inicjuje sesje
strona dostepna po zalogowaniu
- skrypt sprawdza czy istnieje cookie
- skrypt sprawdza czy user z cookisa jest w bazie danych i jesli tak, to strona sie wyswietla
- jesli nie, to user jest przekierowywany na strone logowania
Probowalem z cookisami i sesja i w kazdym przypadku jest tak samo.
Wszystko dziala ok, ale tylko za pierwszym razem. Gdy tylko odswieze strone, uzytkownik nie jest juz zautoryzowany i system przekierowuje mnie na strone logowania. Czy wie ktos moze co robie zle? A moze jest jakas inna opcja na autoryzacje uzytkownikow...
Zalaczam moj kod:
adlogin.php:
<form name="form1" method="post" action="ldap.php"> <table> <tr> <th colspan="2"><div align="center">User login - Please Login</div></th> </tr> <tr> <td width="76">Username</td> <td width="324"><input type="text" name="username" id="username" ></td> </tr> <tr> <td>Password</td> <td><input type="password" name="password" id="password" ></td> </tr> <tr> <td colspan="2"><input type="submit" name="Submit" id="Submit" value="Submit"></td> </tr> </table> </form>
ldap.php:
<?php $ldapusr = $_POST['username']; // ldap rdn or dn $ldappass = $_POST['password']; // associated password require_once ('dbdetails.cfg'); if (!$con) { } //retrieve data from database $query = "SELECT usr_username FROM users WHERE usr_username= '".$ldapusr."'"; $findrow = $row['usr_username']; // using ldap bind if ($ldapusr==$findrow && $ldappass!='') { $ldaprdn = $_POST['username'] . "@company"; // connect to ldap server $ldapconn = ldap_connect("192.168.100.10") or if ($ldapconn) { // binding to ldap server $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass); // verify binding if ($ldapbind) { // if successful // setup cookies //echo "LDAP bind successful..."; } else { } } } else ?>
main.php:
<?php //logout function logout() { } $ldapusr = $_COOKIE['username']; // ldap rdn or dn require_once ('dbdetails.cfg'); if (!$con) { } //retrieve data from database $query = "SELECT usr_username FROM users WHERE usr_username= '".$ldapusr."'"; $findrow = $row['usr_username']; //echo $row['usr_username']; //concatenate the proper username: if ($ldapusr==$findrow) { echo '<div align="right" style="width:99%">You are logged in as:' . $_COOKIE['username'] .' | <strong><a href= "'. logout() .'">Logout</a></strong></div> </div> '; //} } else { }} else { } //content goes here ?>