Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP/MySQL] Błąd odczytu hasła
nemesis_dex
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 21.08.2007

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


Po dodaniu nowego uzytkownika hasło zapisywane jest w md5 a przy logowaniu w ten sam sposob jest odczytywane ale pokazuje że nieprawidlowe haslo

Oto kod:

  1. <?php
  2. require_once "dane.php";
  3.  
  4. $query = mysql_query("SELECT * FROM uzytkownicy WHERE `user` = '" . $_POST['login'] . "' ");
  5. $fetch = mysql_fetch_array($query);
  6. if ( $fetch )
  7. {
  8. if ( md5( $_POST['password'] ) == $fetch['pass'] )
  9. {
  10. $_SESSION['zalogowany'] = '1';
  11. $_SESSION['login'] = $_POST['login'];
  12. echo &#092;"<script>setTimeout('document.location = \"sklep.php\"', 2000);\";
  13. echo 'logowanie zakonczone sukcesem
  14. ';
  15. echo 'Zalogowany';
  16. echo '<a href=\"sklep.php\">Klik';
  17. }
  18. else
  19. {
  20. echo 'Przykro mi, ale podane haslo jest bledne';
  21. }
  22. }
  23. else
  24. {
  25. echo 'Podany uzytkownik nie istnieje w bazie danych';
  26. }
  27. ?>


Czy ktoś widzi tu jakiś błąd. Przeinstalowywałem ostatnio serwer i od tamtej pory wszystko się pokręciło chociaż kod jest ciąge ten sam. Wcześniej wszystko działało normalnie.

Ten post edytował nemesis_dex 3.10.2007, 17:40:34
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


No to po kolei:

1. Nie widzę inicjalizacji $user i $pass - ale w domyśle zakładam, że je ustawiasz... chociaż piszesz, że user ci się nie dodaje, więc może jednak zapomniałeś zmienną ustawić...

2. wyrażenie "md5('$pass')" jest tożsame z md5('$pass') - czyli koduje łańcuch '$pass' a nie zmienną $pass - wynik zawsze będzie taki sam...

3. zmień na "'md5($pass)'" co odpowiada 'md5($pass)' - czyli wynik działania funkcji md5() na zmiennej $pass ujęty w apostrofy... tylko nie zapomnij przypisać do $pass jakiejś wartości.

Widzę, że jeszcze ci się miesza stosowanie ' i " w PHP, ale poćwiczysz trochę i nabierzesz wprawy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

czyli właściwe zapytanie to:
  1. "INSERT INTO uzytkownicy VALUES('$user', 'md5($pass)');"


Powodzenia.
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: 24.12.2025 - 03:34