Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wszystkie hasła md5 tak samo się kodują
Pudi
post
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 3.03.2009
Skąd: WLKP

Ostrzeżenie: (10%)
X----


Witam posiadam system rejestracji użytkowników ale niestety coś się zepsuło założyłem 3 konta 1
Pudi hasło sdasdad(przykładowo)
Test1 hasło testy1
Test2 hasło test2
I Tylko hasło w koncie Pudi działa można się logować itp, a w innych kontach jest napisane hasło nieprawidłowe po obejrzeniu phpmyadmin zauważyłem ze wszystkie konta mają tak samo zakodowane hasło jak konto PUDI, Sprawdziłem Konto Test1 i Test2 logowało się po podaniu hasła do konta Pudi i tutaj moje pytanie co robię źle kod pliku register.php
  1. <?php
  2.  
  3. $login = $_POST['login'];
  4. $haslo = $_POST['haslo'];
  5. $haslo2 = $_POST['haslo2'];
  6. $email = $_POST['email'];
  7. $losowe = $_POST['l'];
  8. $data=date('d.m.Y, H:i');
  9. $poziom = 0;
  10.  
  11. if ($_POST){
  12.  
  13. if(!empty($login) AND !empty($haslo) AND !empty($haslo2) AND !empty($email)){
  14.  
  15. if($haslo != $haslo2){
  16.  
  17. $info .= 'podane hasłą są różne<br />';
  18.  
  19. }else{
  20.  
  21. if(!ereg("^.+@.+\..+$", $email)){
  22.  
  23. $info .= 'niepoprawny adres e-mail<br />';
  24.  
  25. }else{
  26.  
  27. require_once('config.php');
  28.  
  29. $login = czysc($login);
  30. $haslo = czysc($haslo);
  31. $haslo2 = czysc($haslo);
  32. $email = czysc($email);
  33.  
  34.  
  35. $query = "SELECT login FROM users WHERE login='$login'";
  36. $result = mysql_query($query);
  37.  
  38. if(@mysql_num_rows($result) > 0){
  39.  
  40. $info .= "wybrana nazwa użytkownika($login) jest już zajęta<br />";
  41.  
  42. }else{
  43.  
  44. $query = "INSERT INTO users (login,haslo,email,data,poziom) VALUES ('$login',md5('$haslo1'),'$email','$data','$poziom')";
  45. mysql_query($query);
  46.  
  47. $info .= 'rejestracja zakończyła się sukcesem<br />';
  48.  
  49. }
  50.  
  51. }
  52.  
  53. }
  54.  
  55. }else{
  56.  
  57. $info .= 'uzupełnij wszystkie pola<br />';
  58.  
  59. }
  60.  
  61. }
  62.  
  63. ?>
  64. <html>
  65. <head>
  66. <meta name="generator" content="WebSite PRO 4.3" />
  67. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  68. <title>Rejestracja</title>
  69. </head>
  70. <body>
  71.  
  72. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  73.  
  74. <table>
  75.  
  76. <tr>
  77. <td>login:</td>
  78. <td><input type='text' name='login'></td>
  79. </tr>
  80.  
  81. <tr>
  82. <td>hasło:</td>
  83. <td><input type='password' name='haslo'></td>
  84. </tr>
  85.  
  86. <tr>
  87. <td>powtórz hasło:</td>
  88. <td><input type='password' name='haslo2'></td>
  89. </tr>
  90.  
  91. <tr>
  92. <td>e-mail:</td>
  93. <td><input type='text' name='email'><input type='hidden' name='control' value='1'></td>
  94. </tr>
  95.  
  96. <tr>
  97. <td><input type='submit' value='zarejestruj'></td>
  98. </tr>
  99.  
  100. <tr>
  101. <td></td>
  102. <td colspan='2'><?php if(!empty($info)){ echo $info; } ?></td>
  103. </tr>
  104.  
  105. </table>
  106.  
  107. </form>
  108.  
  109. </body>
  110. </html>

A tak wyglada baza danych:



Proszę o pomoc bo kompletnie nie wiem gdzie jest błąd
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 20)
lwc
post
Post #2





Grupa: Zarejestrowani
Postów: 69
Pomógł: 11
Dołączył: 5.10.2008
Skąd: Wielkopolska

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


Mniemam, że skrypt traktuje tą zmienną haslo1 jako tekst, bo jest w apostrofach.
Go to the top of the page
+Quote Post
greycoffey
post
Post #3





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Zmienna $haslo1 nie istnieje, za to istnieją $haslo i $haslo2. Jesli funkcja czysc, to funkcja wyciagnieta z jednego tutka na webhelpie, to lepiej ją zmień, jest niebezpieczna, co tam opisałem.
Go to the top of the page
+Quote Post
Pudi
post
Post #4





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 3.03.2009
Skąd: WLKP

Ostrzeżenie: (10%)
X----


Cytat(lwc @ 7.11.2010, 11:48:06 ) *
Mniemam, że skrypt traktuje tą zmienną haslo1 jako tekst, bo jest w apostrofach.

Po usunięciu nie dodaje nic do bazy ;/

Cytat(greycoffey @ 7.11.2010, 11:59:37 ) *
Zmienna $haslo1 nie istnieje, za to istnieją $haslo i $haslo2. Jesli funkcja czysc, to funkcja wyciagnieta z jednego tutka na webhelpie, to lepiej ją zmień, jest niebezpieczna, co tam opisałem.

Wiem juz porawiłem bo dałem inny plik czysty bez grafiki dlatego ale jest wszystko to samo a tą funkcje czysc poprawiłem na swój własny sposób i na mój użytek starczy winksmiley.jpg
Go to the top of the page
+Quote Post
greycoffey
post
Post #5





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Cytat(lwc @ 7.11.2010, 11:48:06 ) *
Mniemam, że skrypt traktuje tą zmienną haslo1 jako tekst, bo jest w apostrofach.


Btw. nie jest w apostrofach, jest w cudzysłowiu.

Cytat(Pudi @ 7.11.2010, 12:02:37 ) *
Wiem juz porawiłem bo dałem inny plik czysty bez grafiki dlatego ale jest wszystko to samo a tą funkcje czysc poprawiłem na swój własny sposób i na mój użytek starczy winksmiley.jpg


Czyli już nie wstawia takich samych wartości? Mógłbyś tą funkcję czysc() załadować na jakąś wklejkę, mam dziś chwilę czasu to mógłbym sprawdzić ją winksmiley.jpg

Ten post edytował greycoffey 7.11.2010, 12:05:48
Go to the top of the page
+Quote Post
markonix
post
Post #6





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


  1. '".md5($haslo1)."'

Nie powinno być tak?


--------------------
Go to the top of the page
+Quote Post
tehaha
post
Post #7





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


ponadto, żeby funkcja md5 działała to trzeba zrobić wyjście:
  1. $query = "INSERT INTO users (login,haslo,email,data,poziom) VALUES ('$login',".md5("$haslo1").",'$email','$data','$poziom')";
Go to the top of the page
+Quote Post
Pudi
post
Post #8





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 3.03.2009
Skąd: WLKP

Ostrzeżenie: (10%)
X----


Cytat(markonix @ 7.11.2010, 12:03:44 ) *
  1. '".md5($haslo1)."'

Nie powinno być tak?

Zrobiłem tak rejestruje ale nadal to samo hasło takie same jest ;/
Go to the top of the page
+Quote Post
greycoffey
post
Post #9





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Cytat(markonix @ 7.11.2010, 12:03:44 ) *
  1. '".md5($haslo1)."'

Nie powinno być tak?


W cudzysłowach zmienne są podstawiane! W apostrofach nie! W tym wypadku jest w cudzysłowie!

  1. <?php
  2. $z = 'abc';
  3. echo "$abc";
  4. echo '$abc';
  5. ?>
Go to the top of the page
+Quote Post
tehaha
post
Post #10





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


a skąd w ogóle bierzesz zmienną $hasło1, skoro nie masz jej zdefiniowanej? zamień to na $haslo

Ten post edytował tehaha 7.11.2010, 12:08:37
Go to the top of the page
+Quote Post
wdev
post
Post #11





Grupa: Zarejestrowani
Postów: 86
Pomógł: 20
Dołączył: 20.01.2010

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


Zmienna $haslo1 nie pojawia się wcześniej (nie jest zadeklarowana, masz tylko zmienne $haslo i $haslo2), więc PHP ją traktuje jako wartość null. Jakbyś miał wyświetlanie błędów na poziomie E_NOTICE, to powinno wyświetlić. Pytanie, co z tym Pudim? Masz puste hasło?


--------------------
-wdev-
Go to the top of the page
+Quote Post
greycoffey
post
Post #12





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Cytat(tehaha @ 7.11.2010, 12:06:12 ) *
ponadto, żeby funkcja md5 działała to trzeba zrobić wyjście:
  1. $query = "INSERT INTO users (login,haslo,email,data,poziom) VALUES ('$login',".md5("$haslo1").",'$email','$data','$poziom')";


Nie! Funkcja md5 to FUNKCJA SQL!

Do autora: Zmienna $haslo1 nei istnieje! Włacz wyświetlanie błędów typue E_NOTICE.

@up wszyscy co piszą o $haslo1: zostało to już napisane w drugim poście a autor tematu chyba to olał.

Ten post edytował greycoffey 7.11.2010, 12:10:36
Go to the top of the page
+Quote Post
markonix
post
Post #13





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Zakomentuj na razie:
Kod
// mysql_query($query)
;
I zobacz na sucho co zwraca md5('$haslo1') przy różnych hasłach.
Jeśli to samo to szukaj wyżej - poza tym wstaw poprawiony kod z tymi zmiennymi.


--------------------
Go to the top of the page
+Quote Post
greycoffey
post
Post #14





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Cytat(markonix @ 7.11.2010, 12:09:42 ) *
Zakomentuj na razie:
Kod
// mysql_query($query)
;
I zobacz na sucho co zwraca md5('$haslo1') przy różnych hasłach.
Jeśli to samo to szukaj wyżej - poza tym wstaw poprawiony kod z tymi zmiennymi.


Problem już rozwiązany - zmienna $haslo1 nie istnieje.
Go to the top of the page
+Quote Post
Pudi
post
Post #15





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 3.03.2009
Skąd: WLKP

Ostrzeżenie: (10%)
X----


sorrka zły kod wkleiłem co zmiena jest haslo1 tak wyglada cały kod:
  1. <?
  2. ?>
  3. <html>
  4. <title>LechPoznanBloogTV - Transmije z Meczów Kolejorza za FREE</title>
  5. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  6. <head>
  7. <link rel="stylesheet" href="style.css" type="text/css">
  8. </head>
  9. <BODY topmargin="10">
  10.  
  11.  
  12. <table border="0" width="966" height="226" cellpadding="0" cellspacing="0" align="center">
  13. <TR><TD width="966" background="images/logo.png" height="226"></TD></TR></table>
  14. <table border="0" width="996" height="69" cellpadding="0" cellspacing="0" align="center">
  15. <TR><TD width="996" background="images/menu.png" height="69"><ul>
  16. <?php include('include/menugora.php'); ?>
  17. </ul></TD></TR></table>
  18.  
  19.  
  20. <table border="0" width="966" cellpadding="0" cellspacing="0" align="center" background="images/tlosite.png" valign="top">
  21.  
  22. <TR><TD width="204" height="15" valign="top">
  23.  
  24.  
  25. <table width="206" cellpadding="0" cellspacing="0">
  26. <?php include('include/menu.php'); ?>
  27. <?php include('include/menu5.php'); ?>
  28.  
  29. </TD>
  30. <TD width="750" height="15" valign="top">
  31.  
  32. <table width="750" cellpadding="0" cellspacing="0">
  33. <tr><td class="menu2">Rejestracja</td></tr>
  34. <tr><td class="news">
  35. <?php
  36.  
  37. $login = $_POST['login'];
  38. $haslo = $_POST['haslo'];
  39. $haslo2 = $_POST['haslo2'];
  40. $email = $_POST['email'];
  41. $losowe = $_POST['l'];
  42. $data=date('d.m.Y, H:i');
  43. $poziom = 0;
  44.  
  45. if ($_POST){
  46.  
  47. if(!empty($login) AND !empty($haslo) AND !empty($haslo2) AND !empty($email)){
  48.  
  49. if($haslo != $haslo2){
  50.  
  51. $info .= 'podane hasla sa rózne<br />';
  52.  
  53. }else{
  54.  
  55. if(!ereg("^.+@.+\..+$", $email)){
  56.  
  57. $info .= 'niepoprawny adres e-mail<br />';
  58.  
  59. }else{
  60.  
  61. require_once('config.php');
  62.  
  63. $login = czysc($login);
  64. $haslo = czysc($haslo);
  65. $haslo2 = czysc($haslo);
  66. $email = czysc($email);
  67.  
  68.  
  69. $query = "SELECT login FROM users WHERE login='$login'";
  70. $result = mysql_query($query);
  71.  
  72. if(@mysql_num_rows($result) > 0){
  73.  
  74. $info .= "wybrana nazwa uzytkownika($login) jest juz zajeta<br />";
  75.  
  76. }else{
  77.  
  78. $query = "INSERT INTO users (login,haslo,email,data,poziom) VALUES ('$login','".md5($haslo)."','$email','$data','$poziom')";
  79. mysql_query($query);
  80.  
  81. $info .= 'rejestracja zakonczyla sie sukcesem<br />';
  82.  
  83. }
  84.  
  85. }
  86.  
  87. }
  88.  
  89. }else{
  90.  
  91. $info .= 'uzupelnij wszystkie pola<br />';
  92.  
  93. }
  94.  
  95. }
  96.  
  97. ?>
  98. <html>
  99. <head>
  100. <meta name="generator" content="WebSite PRO 4.3" />
  101. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  102. <title>Rejestracja</title>
  103. </head>
  104. <body>
  105.  
  106. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  107.  
  108. <table>
  109.  
  110. <tr>
  111. <td>login:</td>
  112. <td><input type='text' name='login'></td>
  113. </tr>
  114.  
  115. <tr>
  116. <td>haslo:</td>
  117. <td><input type='password' name='haslo'></td>
  118. </tr>
  119.  
  120. <tr>
  121. <td>powtórz haslo:</td>
  122. <td><input type='password' name='haslo2'></td>
  123. </tr>
  124.  
  125. <tr>
  126. <td>e-mail:</td>
  127. <td><input type='text' name='email'><input type='hidden' name='control' value='1'></td>
  128. </tr>
  129.  
  130. <tr>
  131. <td><input type='submit' value='zarejestruj'></td>
  132. </tr>
  133.  
  134. <tr>
  135. <td></td>
  136. <td colspan='2'><?php if(!empty($info)){ echo $info; } ?></td>
  137. </tr>
  138.  
  139. </table>
  140.  
  141. </form>
  142.  
  143. </body>
  144. </html>
  145. <br></td></tr><tr><td class="dol2"></td></tr>
  146. </table>
  147. </TD>
  148.  
  149.  
  150. </TR>
  151. </table>
  152. </div>
  153. <table border="0" width="966" height="60" cellpadding="0" cellspacing="0" align="center">
  154. <TR><TD width="966" background="images/stopka.png" height="60"></TD></TR></table>
  155.  
  156. <Center>by<a href="gg://2812141"> Pudi</a></center>
  157. </body>
  158. </html>

I nadal nie działa sorrka za wklejenie złego kodu pomyliło mi się na ftp winksmiley.jpg

Ten post edytował Pudi 7.11.2010, 12:14:20
Go to the top of the page
+Quote Post
greycoffey
post
Post #16





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Dodaj na początku:
  1. <?php
  2. ini_set('display_errors','1');
  3. ?>


I pokaz co Ci wypisuje.
Go to the top of the page
+Quote Post
Pudi
post
Post #17





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 3.03.2009
Skąd: WLKP

Ostrzeżenie: (10%)
X----


Cytat(greycoffey @ 7.11.2010, 12:19:19 ) *
Dodaj na początku:
  1. <?php
  2. ini_set('display_errors','1');
  3. ?>


I pokaz co Ci wypisuje.

Przed wpisaniem:
Kod
Notice: Undefined index: login in /home/lechtvfr/domains/lechtv.freecast.pl/public_html/rejestracja.php on line 44

Notice: Undefined index: haslo in /home/lechtvfr/domains/lechtv.freecast.pl/public_html/rejestracja.php on line 45

Notice: Undefined index: haslo2 in /home/lechtvfr/domains/lechtv.freecast.pl/public_html/rejestracja.php on line 46

Notice: Undefined index: email in /home/lechtvfr/domains/lechtv.freecast.pl/public_html/rejestracja.php on line 47

Notice: Undefined index: l in /home/lechtvfr/domains/lechtv.freecast.pl/public_html/rejestracja.php on line 48

Po wypełnieniu:
Kod
Notice: Undefined index: l in /home/lechtvfr/domains/lechtv.freecast.pl/public_html/rejestracja.php on line 48

Notice: Undefined variable: info in /home/lechtvfr/domains/lechtv.freecast.pl/public_html/rejestracja.php on line 88

Go to the top of the page
+Quote Post
greycoffey
post
Post #18





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Krytycznych błędów tu nie ma, po prostu sprawdzaj (funkcja isset($zmienna)) czy zmienna istnieje zanim przypiszesz ją do innej.
Go to the top of the page
+Quote Post
Pudi
post
Post #19





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 3.03.2009
Skąd: WLKP

Ostrzeżenie: (10%)
X----


Cytat(greycoffey @ 7.11.2010, 12:28:15 ) *
Krytycznych błędów tu nie ma, po prostu sprawdzaj (funkcja isset($zmienna)) czy zmienna istnieje zanim przypiszesz ją do innej.

To co mam zrobićquestionmark.gif wstydnis.gif

  1. if(!isset($login) AND !isset($haslo) AND !isset($haslo2) AND !isset($email)){
  2.  
  3. $login = czysc($login);
  4. $haslo = czysc($haslo);
  5. $haslo2 = czysc($haslo2);
  6. $email = czysc($email);
  7.  
  8.  
  9. $query = "SELECT login FROM users WHERE login='$login'";
  10. $result = mysql_query($query);
  11.  
  12. if(@mysql_num_rows($result) > 0){
  13.  
  14. $info .= "wybrana nazwa użytkownika($login) jest już zajęta<br />";
  15.  
  16. }else{
  17.  
  18. $query = "INSERT INTO users (login,haslo,email,data,poziom) VALUES ('$login',md5('$haslo'),'$email','$data','$poziom')";
  19. mysql_query($query);
  20.  
  21. $info .= 'rejestracja zakończyła się sukcesem<br />';

przerobiłem tak jak powiedziales ale teraz nic się nie dzieje zero reakcji ;(
Go to the top of the page
+Quote Post
ciekawskiii
post
Post #20





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


dziwny problem, w kodzie wszystko wyglada ok, wywal md5 i sprawdz czy zapisuje te same hasla


--------------------
Go to the top of the page
+Quote Post
greycoffey
post
Post #21





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Cytat(Pudi @ 7.11.2010, 13:00:38 ) *
To co mam zrobićquestionmark.gif wstydnis.gif

  1. if(!isset($login) AND !isset($haslo) AND !isset($haslo2) AND !isset($email)){
  2.  
  3. $login = czysc($login);
  4. $haslo = czysc($haslo);
  5. $haslo2 = czysc($haslo2);
  6. $email = czysc($email);
  7.  
  8.  
  9. $query = "SELECT login FROM users WHERE login='$login'";
  10. $result = mysql_query($query);
  11.  
  12. if(@mysql_num_rows($result) > 0){
  13.  
  14. $info .= "wybrana nazwa użytkownika($login) jest już zajęta<br />";
  15.  
  16. }else{
  17.  
  18. $query = "INSERT INTO users (login,haslo,email,data,poziom) VALUES ('$login',md5('$haslo'),'$email','$data','$poziom')";
  19. mysql_query($query);
  20.  
  21. $info .= 'rejestracja zakończyła się sukcesem<br />';

przerobiłem tak jak powiedziales ale teraz nic się nie dzieje zero reakcji ;(


isset() to funkcja sprawdzająca czy zmienna ISTNIEJE, ty dałeś przed tym ! więc sprawdza Ci czy zmienna nie istnieje.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 20.08.2025 - 07:31