![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 26.03.2008 Skąd: nowy sącz Ostrzeżenie: (10%) ![]() ![]() |
Witam,próbuje uruchomić u siebie skrypt logowania znaleziony na jakiejś stronce i niestety nie działa.po podaniu loginu i hasła nic się nie dzieje,nie przenosi do strony index2.php jak powinien. kod skryptu :
CODE ob_start();
require_once('connect.php'); function usun($data){ GLOBAL $dbc; if (ini_get('magic_quotes_gpc')){ $data = stripslashes($data); } return mysql_real_escape_string($data, $dbc); }if (isset($_POST['submit'])){ if (empty($_POST['login'])){ $message .= 'Nie podałeś loginu '; $l = FALSE; }else{ $l = usun($_POST['login']); } if (empty($_POST['haslo'])){ $message .= 'Nie podałeś hasła '; $h = FALSE; }else{ $h = usun($_POST['haslo']); }if ( $l && $h ){ $query = "SELECT username, access,admin FROM user WHERE username='$l' AND haslo=password('$h')"; $result = mysql_query($query); $row = mysql_fetch_array ($result, MYSQL_ASSOC); if($row){ session_start(); $_SESSION['username'] = $row['username']; $_SESSION['access'] = $row['access']; $_GET['cmd'] = 'ok'; echo 'zalogowany'; header ("Location: index2.php?cmd={$_GET['cmd']}"); exit(); // przekierowuje nas na jaka strone chcemy }else{ $message .= 'Błędne hasło lub login '; } mysql_close(); }else{ $message .= 'Spróbuj jeszcze raz'; } } ob_end_flush(); ?> tutaj formularz <? if(isset($message)){ echo $message; } ?> |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
hmm
podtym wrzuć
i powiedz / pokaż czy zwróciło Tobie tablice tego użytkownika. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 26.03.2008 Skąd: nowy sącz Ostrzeżenie: (10%) ![]() ![]() |
bool(false)
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
czyli nie znalazło użytkownika o podanym loginie i haśle i nie przeszło warunku if($row) teraz zrób to samo ale daj
i zobacz czy dane się zgadzają. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 26.03.2008 Skąd: nowy sącz Ostrzeżenie: (10%) ![]() ![]() |
string(5) "admin" string(10) "tymczasowe"
hmmm i takie mam właśnie w bazie |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
a powinieneś mieć:
Kod password('$h') hasło za hashowane :] (oczywiście w bazie) polecam: http://dev.mysql.com/doc/refman/5.0/en/password-hashing.html -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 26.03.2008 Skąd: nowy sącz Ostrzeżenie: (10%) ![]() ![]() |
ale w bazie hasło jest zaszyfrowane.nie rozumiem tego
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 14 Dołączył: 20.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
"SELECT username, access,admin FROM user WHERE username='$l' AND haslo=password('$h')"
Hmmm... a czy w zapytaniu SQL można używać funkcji? Co daje funkcja password? – używam SQL od jakiegoś czasu i nigdy się z tym nie spotkałem. Wiem, lama ze mnie. BTW. Ten skrypt wygląda jak produkt w sklepie "wszystko za 4 złote". Dostał 10/10 na jakiejś stronce? |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
zrób w phpmyadminie
i porównaj to z tym wpisanym w bazie czy napewno jest takie samo ;] Cytat Hmmm... a czy w zapytaniu SQL można używać funkcji? oczywiście że można -.-" Cytat Co daje funkcja password? spójrz na link w moim poście wyżej. -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 26.03.2008 Skąd: nowy sącz Ostrzeżenie: (10%) ![]() ![]() |
no a wiec tak: zapytanie wykonało się poprawnie
michal,co proponujesz w zamian? ;> Ten post edytował eki 4.10.2008, 20:53:27 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 14 Dołączył: 20.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
oczywiście że można -.-" Wydawało mi się, że to jest jakaś funkcja PHP ![]() spójrz na link w moim poście wyżej. To jest przenośne? (Zaimplementowane w czymś innym niż MySQL?) Jakieś zalety w porównaniu ze zwykłym MD5? michal,co proponujesz w zamian? ;> Zamiast skryptu? Napisz własny, który będzie używał hashów MD5 (metoda sprawdzona i godna zaufania – tylko szaleńcy próbują rozbijać MD5 w celach innych niż naukowe). No i nie rób czegoś takiego... $_GET['cmd'] = 'ok'; ... header ("Location: index2.php?cmd={$_GET['cmd']}"); ![]() |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Cytat no a wiec tak: zapytanie wykonało się poprawnie hm ale nie sparwdziłeś tego co ja psiałem ? ... . -------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 26.03.2008 Skąd: nowy sącz Ostrzeżenie: (10%) ![]() ![]() |
sprawdziłam.naprawdę początkuję w temacie
![]() zadałam zapytanie w phpMyAdminie i odnalazł ten rekord i pokazał zaszyfrowane hasło więc hasło jest poprawne może coś z przekierowaniem? czy na stronie index2.php też musi być deklaracja sesji umieszczona? Ten post edytował eki 4.10.2008, 21:12:05 |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 14 Dołączył: 20.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
A przenieś session_start() na początek skryptu.
BTW. Jeśli masz w $res FALSE, to nie wejdzie do pętli – coś musi być nie tak z zapytaniem. BTW2. Dodaj jakąś podstawową obsługę błędów if (!$link = mysql_connect($this->host, $this->user, $this->pass)) { print("ERROR: Cannot connect to database!"); exit(); } if (!mysql_select_db($this->dbas, $link)) { print("ERROR: Cannot select database!"); exit(); } $res = mysql_query($sql, $link); if (!$res) { print("ERROR: Cannot execute a query!"); mysql_error(); exit(); } Ten post edytował michalkjp 4.10.2008, 21:20:16 |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
to pod zapytaniem daj:
zobaczymy czy w ogóle zapytanie się wykonuje ;] -------------------- |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 26.03.2008 Skąd: nowy sącz Ostrzeżenie: (10%) ![]() ![]() |
string(95) "SELECT username, access,admin FROM user WHERE username='admin' AND haslo=password('tymczasowe')"
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
sorry na $result......
-------------------- |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 26.03.2008 Skąd: nowy sącz Ostrzeżenie: (10%) ![]() ![]() |
resource(4) of type (mysql result)
|
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 14 Dołączył: 20.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
no to wracamy do punktu wyjścia czyli tego że zapytanie jest dobre ale nei zwraca żadnego wiersza.
może swtórz użytkownika o loginie test i haśle test nie kodując go i wywołaj ten skrypt bez funkcji "password" w zapytaniu ![]() Cytat bool(false) to coś jest chyba nie tak, bo $res powinno być tablicą. gdy mysql zwraca pusty wynik $row ustawione zostaje na false ![]() bo chyba chodziło Ci o $row a nie $res :] ? Ten post edytował melkorm 4.10.2008, 21:40:07 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 11:07 |