Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] mysql_num_rows - błąd
Forum PHP.pl > Forum > Przedszkole
Dizzy
$password = mysql_query('SELECT * FROM tabela WHERE haslo="$haslo"');
if (mysql_num_rows($password) == 1) {
if ($newpassword != $newpassword2) { echo 'Podane hasla nie zgadzaja sie'; } else {
$newpassword = md5(md5($newpassword));
$q = "UPDATE users (user_haslo, user_mail, user_gg) VALUES ('$newpassword' , '$newmail' , '$newgg') WHERE user'$username' "; // zapisywanie rekordu do bazy
if (@mysql_query ($q)) {
echo " Dane zaktualizowane ";
} else {
echo " Popełniłes błąd ";
}
}
} else { echo "Zle haslo"; }

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/Dizzy/domains/xxx.xxx.pl/public_html/strony/konto.php on line 89
Zle haslo

Czy mógłby mi ktos pomóc?
nospor
  1. <?php
  2. $password = mysql_query('SELECT * FROM tabela WHERE haslo="$haslo"') or die(mysql_error());
  3. ?>

I uzywaj bbcode
Dizzy
Nadal niedziała... wyświetla mi:
Złe hasło
robos85
a hasło przesyłasz postem, getem??
Może najpierw do zmiennej haslo przypisz wartość z np $_POST['haslo'] ?
UNK
Widzę, że z hasła dwa razy robisz sumę przez MD5, ale ...
  1. <?php
  2. $newpassword = md5(md5($newpassword));
  3. ?>

...przy samym zapytaniu już nie
  1. <?php
  2. $password = mysql_query('SELECT * FROM tabela WHERE haslo="$haslo"');
  3. ?>


Moim zdaniem to nie dziwne, że wyświetla Ci złe hasło skoro ono się nie będzie zgadzało bo ciąg ( zdaje się 32bajtowy ) nie będzie równy np hasłu 'pietruszka'. Dlatego powinno to chyba raczej wyglądać:

  1. <?php
  2. $password = mysql_query('SELECT * FROM tabela WHERE haslo="'.md5( md5( $haslo ) ).'"');
  3. ?>

Może że hasło już przed wysłaniem formularza jest kodowane.
Do tego, oczywiście jeśli dodatkowo weźmiesz pod uwagę post od robos85 to zapytanie powinno wyglądać:
  1. <?php
  2. $password = mysql_query('SELECT * FROM tabela WHERE haslo="'.md5( md5( $_POST['haslo'] ) ).'"'); //albo $_GET['haslo']
  3. //ale sądzę że w Twoim wypadku jest POST
  4. ?>
Dizzy
Oto mój skrypt:
  1. <?php
  2. include 'Konfiguracja/Konfiguracja.php';
  3.  
  4. if (isset($_SESSION['user_gg'])) {
  5. $user_gg = $_SESSION['user_gg'];
  6. } else {
  7. $user_gg = '';
  8. }
  9. if (isset($_SESSION['user_mail'])) {
  10. $username = $_SESSION['user_mail'];
  11. } else {
  12. $user_mail = '';
  13. }
  14.  
  15.  
  16.  
  17. if ($_SESSION['zalogowany'] == '1') {
  18. echo "<form action='index.php?show=konto' method=post>";
  19. echo "<br>";
  20. echo "<table border=0 cellspacing=1  id=AutoNumber1>";
  21. echo "<tr>";
  22. echo "<td  colspan=2>";
  23. echo "<p align=center>$username & $user_gg & $user_mail</td>";
  24. echo "</tr>";
  25. echo "<tr>";
  26. echo "<td >&nbsp;</td>";
  27. echo "<td >&nbsp;</td>";
  28. echo "</tr>";
  29. echo "<tr>";
  30. echo "<td  colspan=2>&nbsp;</td>";
  31. echo "</tr>";
  32. echo "<tr>";
  33. echo "<td  colspan=2>";
  34. echo "<p align=center><b>Ustawienia kontaktowe</b></td>";
  35. echo "</tr>";
  36. echo "<tr>";
  37. echo "<td >Gadu-Gad:</td>";
  38. echo "<td ><input type=text name=newgg value=\"$user_gg\" size=20></td>";
  39. echo "</tr>";
  40. echo "<tr>";
  41. echo "<td >E-mail:</td>";
  42. echo "<td ><input type=text name=newemail value=\"$user_mail\" size=20></td>";
  43. echo "</tr>";
  44. echo "<tr>";
  45. echo "<td  colspan=2>&nbsp;</td>";
  46. echo "</tr>";
  47. echo "<tr>";
  48. echo "<td  colspan=2>";
  49. echo "<p align=center><b>Ustawienia hasła</b></td>";
  50. echo "</tr>";
  51. echo "<tr>";
  52. echo "<td >Aktualne hasło:</td>";
  53. echo "<td ><input type=text name=password size=20></td>";
  54. echo "</tr>";
  55. echo "<tr>";
  56. echo "<td >&nbsp;</td>";
  57. echo "<td >&nbsp;</td>";
  58. echo "</tr>";
  59. echo "<tr>";
  60. echo "<td >Nowe hasło:</td>";
  61. echo "<td ><input type=text name=newpassword size=20></td>";
  62. echo "</tr>";
  63. echo "<tr>";
  64. echo "<td >Powtórz nowe hasło:</td>";
  65. echo "<td ><input type=text name=newpassword2 size=20></td>";
  66. echo "</tr>";
  67. echo "<tr>";
  68. echo "<td >&nbsp;</td>";
  69. echo "<td >&nbsp;</td>";
  70. echo "</tr>";
  71. echo "<tr>";
  72. echo "<td  colspan=2>";
  73. echo "<p align=center><input type=submit value=Zapisz name=B1></td>";
  74. echo "</tr>";
  75. echo "<tr>";
  76. echo "<td >&nbsp;</td>";
  77. echo "<td >&nbsp;</td>";
  78. echo "</tr>";
  79. echo "</table>";
  80. } else {
  81. echo "Brak dostępu, zaloguj sie by mieć dostęp.."; }
  82. $password = mysql_query('SELECT * FROM user_haslo WHERE haslo="$user_haslo"') or die(mysql_error());
  83. if (mysql_num_rows($password) == 1) {
  84. if ($newpassword != $newpassword2) { echo 'Podane hasla nie zgadzaja sie'; } else {
  85.      $newpassword = md5(md5($newpassword));
  86.      $password = md5(md5($password));
  87. $q = "UPDATE users (user_haslo, user_mail, user_gg) VALUES ('$newpassword' , '$newmail' , '$newgg') WHERE user'$username' "; // zapisywanie rekordu do bazy
  88.   if (@mysql_query ($q)) {
  89.   echo " Dane zaktualizowane ";
  90. } else {
  91. echo " Błąd bazy danych ";
  92. }
  93. }
  94. } else { echo "Zle haslo"; }
  95.  
  96. ?>

Czy mógby ktoś mi to zrobić aby działało ;>?
b4x
Tutaj masz źle
  1. <?php
  2. $q = "UPDATE users (user_haslo, user_mail, user_gg) VALUES ('$newpassword' , '$newmail' , '$newgg') WHERE user'$username' "; // zapisywanie rekordu do bazy
  3. ?>


Dokładniej tutaj: WHERE user'$username' ";, powinno być WHERE user = '$username' zapomniałeś o = tongue.gif

Powinno być

  1. <?php
  2. $q = 'UPDATE `users` SET `user_haslo` = "'.$newpassword.'", `user_mail` = "'.$newmail.'", `user_gg` = "'.$new_gg.'" WHERE `user` = "'.$username.'"'; // zapisywanie rekordu do bazy
  3. ?>
Dizzy
To i tak nicnieda :-/
UNK
To pokaż jak w tej chwili wygląda Twój skrypt pobierania z bazy, rozpatrzy się to jeszcze raz co jest nie tak, bo nie wiem czy wszystkie poprawki wprowadziłeś do swojego skryptu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.