Mam taki oto kod który sprawdza i pobiera mi z bazy danych rekordy:
<?php
...
function Query($q="")
{
if ($q!="")
$this->result=mysql_query($q, $this->dbHandle);
}
var $dbHandle; #obiekt bezpośredniej obsługi bazy danych
var $userId; #id użytkownika
var $userName; #nazwa użytkownika
var $userPass; #hasło użytkownika
function ReadUser()
{
$this->dbHandle->Query("SELECT * FROM users");
$UserObj=mysql_fetch_row($this->dbHandle->result);
$this->userId=$UserObj[0];
$this->userName=$UserObj[1];
$this->userPass=$UserObj[2];
unset($UserObj);
}
function ChxUser($n, $p)
{
if(($this->userName==$n)&&($this->userPass==md5($p)))
{
return true;
}
else
{
return false;
};
}
Problem w tym że z mojej bazy sprawdzany jest tylko pierwszy rekord czy zgadza się login("name" w bazie) i hasło("pass" w bazie) a chciałbym żeby były sprawdzane wszystkie rekordy:
....
if (isset($_POST['login']) && isset($_POST['haslo'])) {
# zmieniono $login i $haslo na odpowiednie indeksy tablicy superglobalnej $_PASS
$login=$_POST['login'];
$haslo=$_POST['haslo'];
#oryginalny warunek zamieniony na warunek korzystający z bazy danych
if ($User->ChxUser($login,$haslo)) { #nowy warunek
session_start();
session_register("login");
header("Location: secret.php?" . SID);
exit();
}
....
HTML:
...
<FORM method="POST" action="<?php echo basename($_SERVER['PHP_SELF']) ?>">
Login: <INPUT type="text" name="login">
Hasło: <INPUT type="password" name="haslo">
<INPUT type="submit" value="Zaloguj się">
</FORM>
...
Moja baza:
id name pass
0 nick1 haslo1
1 nick2 haslo2
2 nick3 haslo3
...
Z góry dzięki wszystkim za wszelką pomoc :)