Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z mysql i md5
Darekxp
post
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 13.05.2007

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


Witam! Korzystam ze skryptu na logowanie i rejestracje z http://webmade.org/porady/sesje-php-system-logowania.php ale nie moge zrobić żeby hasło było kodowane md5. Próbowałem różnych sposobów ale mi nie wychodzi, a jak już sie udało i ładnie koduje przez md5 w bazie wpis jest ok, to nie moge sie zalogować. Ponadto jak dodam dodatkowe pola do rejestracji(w bazie oczywiście dodałem odpowiedznie zapytanie) i je dopisuje to mam problem z logowaniem i cały czas pisze że podano złe dane.
Jeżeli wszystko dopisuje do bazy tak jak powinno to chyba przyczyna tkwi gdzies podczas logowania? sadsmiley02.gif
Go to the top of the page
+Quote Post
scanner
post
Post #2





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




A gdzie listingi? Jasnowidzów na etacie nie trzymamy.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
Darekxp
post
Post #3





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 13.05.2007

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


rejestracja

  1. <?php
  2. mysql_connect("localahost", "baza", "")or die("Nie można nawiązać połączenia z bazą"); //połączenie z bazą danych
  3. mysql_select_db("users")or die("Wystąpił błąd podczas wybierania bazy danych");
  4.  
  5. function ShowForm($komunikat=""){ //funkcja wyświetlająca formularz rejestracyjny
  6. echo "$komunikat<br>";
  7. echo "<form action='rejestruj.php' method=post>";
  8. echo "Login: <input type=text name=login><br>";
  9. echo "Hasło: <input type=password name=haslo><br>";
  10. echo "Klasa: <input type=text name=klasa><br>";
  11. echo "Wiek: <input type=text name=wiek><br>";
  12. echo "E-mail: <input type=text name=email><br>";
  13. echo "Hobby: <input type=text name=hobby><br>";
  14. echo "<input type=hidden value='1' name=send>";
  15. echo "<input type=submit value='Zarejestruj mnie'>";
  16. echo "</form>";
  17. }
  18. ?>
  19. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  20. <html>
  21. <head>
  22. <title>Untitled Document</title>
  23. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  24.  
  25. </head>
  26.  
  27.  
  28. <body>
  29. <?php
  30. if($_POST["send"]==1){ //sprawdzanie czy formularz został wysłany
  31. if(!empty($_POST["login"]) && !empty($_POST["haslo"]) && !empty($_POST["klasa"]) && !empty($_POST["wiek"]) && !empty($_POST["email"]) && !empty($_POST["hobby"])){ //oraz czy uzupełniono wszystkie dane
  32. if(mysql_num_rows(mysql_query("select * from users where user_login='".htmlspecialchars($_POST["login"]."'"))))ShowForm("Użytkownik o podanym loginie już istnieje!!!"); // sprawdzanie czy użytkownik o podanej nazwie już istnieje
  33. else{
  34. mysql_query("insert into users values(NULL, '".htmlspecialchars($_POST["login"])."', '".md5($_POST["haslo"])."', '".htmlspecialchars($_POST["klasa"])."', '".htmlspecialchars($_POST["wiek"])."', '".htmlspecialchars($_POST["email"])."', '".htmlspecialchars($_POST["hobby"])."')"); // zapisywanie rekordu do bazy
  35. echo "Rejestracja przebiegła pomyślnie. Możesz teraz przejść do <a href='index.php'>strony głównej</a> i się zalogować.";
  36. }
  37. }
  38. else ShowForm("Nie uzupełniono wszystkich pól!!!");
  39. }
  40. else ShowForm();
  41. mysql_close(); //zamykanie połączenia z bazą
  42. ?>
  43. </body>
  44. </body>
  45. </html>


index.php
  1. <?php
  2. session_register("zalogowany");
  3.  
  4. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  5.  
  6. mysql_connect("localhost", "root", "")or die("Nie można nawiązać połączenia z bazą");
  7. mysql_select_db("test")or die("Wystąpił błąd podczas wybierania bazy danych");
  8.  
  9. function ShowLogin($komunikat=""){
  10. echo "$komunikat<br>";
  11. echo "<form action='index.php' method=post>";
  12. echo "Login: <input type=text name=login><br>";
  13. echo "Hasło: <input type=text name=haslo><br>";
  14. echo "<input type=submit value='Zaloguj!'>";
  15. echo "</form>";
  16. echo "Jeśli nie jesteś zarejestrowany, <a href='rejestruj.php'>tu znajdziesz formularz</a>";
  17. }
  18.  
  19. ?>
  20. <!DOCTYPE html 
  21. PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  22. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  23. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  24. <head>
  25. <title>Strona główna</title>
  26. </head>
  27. <body>
  28. <?php
  29. if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
  30. if($_SESSION["zalogowany"]!=1){
  31. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  32. if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars($_POST["haslo"])."'"))){
  33. echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną</a>";
  34. $_SESSION["zalogowany"]=1;
  35. }
  36. else echo ShowLogin("Podano złe dane!!!");
  37. }
  38. else ShowLogin();
  39. }
  40. else{
  41. ?>
  42. Gratulacje! Zalogowałeś się pomyślnie! Możesz przejśc teraz do innych podstron, 
    np. do <a href="stronka.php">tej</a>
  43. <br><a href='index.php?wyloguj=tak'>wyloguj się</a>
  44. <?php
  45. }
  46. ?>
  47.  
  48. </body>
  49. </html>
  50. <?php mysql_close(); ?>
Go to the top of the page
+Quote Post
kaczy
post
Post #4





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 2.07.2008

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


Żeby w bazie hasło było kodowane w md5 musisz podczas rejestracji dodać funkcje md5() i puźniej podczas logowanie hasło także musi być kodowane funkcją md5() wtedy wszystko powinno działać.
Go to the top of the page
+Quote Post
Lejto
post
Post #5





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


czyli:
  1. <?php
  2. if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".md5(htmlspecialchars($_POST["haslo"]))."'"))){
  3. echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną</a>";
  4. $_SESSION["zalogowany"]=1;
  5. }
  6. ?>


--------------------
Go to the top of the page
+Quote Post
Darekxp
post
Post #6





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 13.05.2007

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


niestety nie działa, nawet nie koduje md5 ;] u mnie kodowało tak jak miałem ale nie dało sie zalogowac i nie wiem jak to zrobić
Go to the top of the page
+Quote Post
strife
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Proszę o dodanie tagu do tematu, zgodnego z zasadami forum Przedszkole, inaczej temat zostanie zamknięty.

@Lejto - jaki jest sens użycia htmlspecialchars, jak potem używasz md5? - Żaden!


--------------------
Go to the top of the page
+Quote Post
Shili
post
Post #8





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Zrób tak: wyświetl sobie hasło z bazy przyporządkowane do Twojego loginu (to zapisane w bazie z md5) i wyświetl hasło, które wpisałeś w pole hasła do logowania (również potraktowane md5).

I porównaj. Jeśli wyświetli Ci 2 takie same ciągi md5, to problem leży gdzieś indziej.

Ten post edytował Shili 10.07.2008, 11:48:46
Go to the top of the page
+Quote Post
Lejto
post
Post #9





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


@strife - Darekxp miał już htmlspecialchars(); w swoim kodzie to nie usuwałem


--------------------
Go to the top of the page
+Quote Post
strife
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(Lejto @ 10.07.2008, 12:50:18 ) *
@strife - Darekxp miał już htmlspecialchars(); w swoim kodzie to nie usuwałem

Rozumiem, ale mimo wszystko, jak już podajesz kod na forum, to staraj się wyłapywać również błędy, a nie je powielać w kolejnych postach, EOT. smile.gif

Reasumując ~Darekxp, zrób tak jak napisała Shili, a będziemy dalej działać. Od siebie mogę również Ci dać mały opis, dotyczący logowania, który kiedyś dawno temu pisałem smile.gif Przejrzyj ten temat, może na coś wpadniesz link.


--------------------
Go to the top of the page
+Quote Post
Darekxp
post
Post #11





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 13.05.2007

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


najgłubsze jest to że jak wkleje sam kod z linku w pierwszym poście i dodam chociażby jednopole wiecej w formularzu rejestracyjnym i bazie i nie bede nic sie bawić z md5 to i tak sie nie zaloguje bo pojawiają sie niepoprawne dane blinksmiley.gif
Go to the top of the page
+Quote Post
Shili
post
Post #12





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Pytanie pierwsze:
Czy po logowaniu wyświetla Ci się Twój komunikat o niepoprawnych danych?
Pytanie drugie:
Po wysłaniu formularza zrób sobie print_r($_POST); czy to co się wyświetla jest tym, co znajduje się w bazie danych?
Go to the top of the page
+Quote Post
mike
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(strife @ 10.07.2008, 12:42:19 ) *
Proszę o dodanie tagu do tematu, zgodnego z zasadami forum Przedszkole, inaczej temat zostanie zamknięty.
Ponawiam prośbę mad.gif
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 00:41