Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z autoryzacją i pobieraniem danych z bazy.
covall
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 9.03.2004
Skąd: Stalowa Wola

Ostrzeżenie: (0%)
-----


Oto mój skrypt login.php
[php:1:2a54e88739]<?
mysql_connect("serwer", "login", "haslo");
mysql_select_db("baza");
if(!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="Witaj w panelu
administracyjnym ."');
header('HTTP/1.0 401 Unauthorized');
echo "Nie mogę Cię zalogować.";
exit;
} else {
$sprawdz = "SELECT pass FROM users WHERE login='$PHP_AUTH_USER'";
$pass_db = mysql_query($sprawdz) or die(mysql_error());
if($PHP_AUTH_PW != "$pass_db") {
header('WWW-Authenticate: Basic realm="Witaj w panelu administracyjnym."');
header('HTTP/1.0 401 Unauthorized');
echo "Nie mogę Cię zalogować.";
exit;
} else {
echo "Zalogowałeś się pomyślnie.";
}
}
?>[/php:1:2a54e88739]

Problem jest następujący... gdy chcę się zalogować i wpisuje dobre dane 3 razy wyskakuje okienko logowania, a następnie wyskakuje komunikat 'Nie mogę Cię zalogować.'
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
covall
post
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 9.03.2004
Skąd: Stalowa Wola

Ostrzeżenie: (0%)
-----


8O ups... zauważyłem poważnego buga w moim skrypcie. Chodzi o to, że jeżeli ktoś poda login, którego nie ma w bazie, to wtedy może podać jakiekolwiek hasło i być zalogowanym jako $PHP_AUTH_USER. Więc postanowiłem zmodyfikować skrypt...
[php:1:75523ca241]
<?
mysql_connect("serwer", "login", "haslo");
mysql_select_db("baza");
$pobierz = "SELECT login FROM engine_users";
$wykonaj = mysql_query($pobierz) or die(mysql_error());
if($wiersz=mysql_fetch_array($wykonaj)) {
$login = $wiersz['login'];
} if($PHP_AUTH_USER != "$login" || !isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="Witaj w panelu administracyjnym serwisu GtaGame.prv.pl, proszę podać swój login oraz hasło."');
header('HTTP/1.0 401 Unauthorized');
echo "Nieprawidłowy login.";
exit;
} else {
$sprawdz = "SELECT pass FROM engine_users WHERE login='$PHP_AUTH_USER'";
$pass_db = mysql_query($sprawdz) or die(mysql_error());
while($row = mysql_fetch_array($pass_db))
$haslo_db = $row['pass'];
if($PHP_AUTH_PW != "$haslo_db") {
header('WWW-Authenticate: Basic realm="Witaj w panelu administracyjnym."');
header('HTTP/1.0 401 Unauthorized');
echo "Nieprawidłowe haslo";
exit;
} else {
echo "Zalogowałeś się pomyślnie <B>$PHP_AUTH_USER.</B>";
}
}
?>
[/php:1:75523ca241]

Lecz teraz moze logować się tylko użytkownik, który w tabeli ma nadany id=1. Reszcie wywala, że nieprawidłowy login. Problem podobny jak ten pierwszy, lecz teraz tyczy się loginu. Wiecie może co zrobić? WIelkie dzięki za pomoc.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 15:04