<? ?> <html> <body> <form action='zaloguj2.php' method='POST'> <div> <label>Login</label> <input type='text' name='txtLogin' maxlength='30' class='txtin' /> </div> <div> <label>Hasło</label> <input type='password' name='pwdHaslo' maxlength='20' class='txtin' /> </div> <div> <center><input type='submit' name='zaloguj' value='Zaloguj' /></center> </div> </form> </body> </html>
a to strona sprawdzajaca logowanie:
<? $Haslo = $_POST['pwdHaslo']; // Funkcja sprawdzająca poprawność danych logowania. // Jeśli są poprawne, zwraca TRUE, w przeciwnym razie - FALSE. function logowanie_sprawdz ($login_input, $haslo_input) { if ($login_input == '' || $haslo_input == '') return FALSE; $server = " "; $database = "[ ]"; $polecenieSQL = "SELECT * FROM dbo.Klient WHERE Login = '$login_input'"; // Polaczenie z serwerem. $db_connection = @mssql_connect($server) // Wybranie biezacej bazy danych. $result = @mssql_select_db($database, $db_connection) $wyniki = @mssql_query($polecenieSQL) // Nie ma zarejestrowanego użytkownika o podanej nazwie. if ($wyniki == FALSE) return FALSE; else { $klient = @mssql_fetch_array($wyniki); $login_bd = $klient['Login']; $haslo_bd = $klient['Haslo']; //if ((strcmp($login_bd, $login_input) == 0) && (strcmp($haslo_bd, $haslo_input) == 0)) { return TRUE; } else return FALSE; } } // function logowanie_sprawdz() ?> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <TITLE>Witamy</TITLE> <link rel="Stylesheet" href=" " type="text/css" /> </HEAD> <BODY> <? // Sprawdzenie danych logowania, podanych przez użytkownika. $wynik_logowania = FALSE; else { // Prosta obrona przed atakiem SQL injection: // wycięcie znaków, które mogłyby zostać wykorzystane przez hackera. $wynik_logowania = logowanie_sprawdz($login, $haslo); } if ($wynik_logowania == TRUE) { $server = " "; $database = "[ ]"; $polecenieSQL = "SELECT * FROM dbo.Klient WHERE Login = '$login'"; // Polaczenie z serwerem. $db_connection = @mssql_connect($server, $srv_login, $srv_password) // Wybranie biezacej bazy danych. $result = @mssql_select_db($database, $db_connection) $proceduraSQL = mssql_init("dbo.Login_Sprawdz", $db_connection); mssql_bind($proceduraSQL,"@Par_Login", $login, SQLVARCHAR); $wyniki = mssql_execute($proceduraSQL) $klient = @mssql_fetch_array($wyniki); $IdKlienta = $klient['IdKlienta']; $polecenieSQL = "INSERT dbo.KlientZalogowany (IdSesji, IdKlienta, OstatniaZmiana) "; $polecenieSQL .= "VALUES ('$IdSesji', $IdKlienta, GETDATE())"; $wyniki = @mssql_query($polecenieSQL) $_SESSION['zalogowany'] = TRUE; $_SESSION['login'] = $login; } if ($wynik_logowania == FALSE) { } ?> </BODY> </HTML>
Dodam ze hasla w bazie sa hasowane md5 i w takiej postaci tam trzymane z raczej jasnych wzgledow jeszcze wrzuce procedure jedna co tam uzuwam:
ALTER PROCEDURE [dbo].[Zalogowany_Sprawdz] @Par_Login varchar(30) AS BEGIN SELECT * FROM dbo.Klienci WHERE Login = @Par_Login END GO
to chyba wszystko z gory dzieki za pomoc