Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze zmiana hasla
Forum PHP.pl > Forum > PHP
aagaaz
Proszę o pomoc ze skryptem zmiany hasla:

  1. <center><form action="zmiana_hasla.html" method="post">
  2. <td>Stare haslo: <input type="password" name="stare_haslo"></td>
  3. </tr><tr>
  4. <td>Nowe Hasło: <input type="password" name="nowe_haslo"></td>
  5. </tr><tr>
  6. <td>Powtórz Hasło: <input type="password" name="nowe_haslo2"></td>
  7. </tr><tr>
  8. <td><input type="submit" name="ok" value="Zmień"></td>
  9. </tr><tr>


  1. <?php
  2. include ('sprawdz3.php');
  3. include ('db.php');
  4.  
  5. $haslo=$_POST['haslo'];
  6. $nowe_haslo=$_POST['nowe_haslo'];
  7. $nowe_haslo2=$_POST['nowe_haslo2'];
  8.  
  9. if ($_POST['ok'])
  10. {
  11. $nowe_haslo = trim(strip_tags( mysql_real_escape_string(HTMLSpecialChars($nowe_haslo))));
  12. $nowe_haslo2 = trim(strip_tags( mysql_real_escape_string(HTMLSpecialChars($nowe_haslo2))));
  13.  
  14. if (empty ($haslo) || empty($nowe_haslo) || empty($nowe_haslo2))
  15. {
  16. echo 'Uzupełnij wszystkie pola';
  17. }
  18.  
  19. {if ($nowe_haslo != $nowe_haslo2)
  20. {
  21. echo 'Podane hasłą są różne<br />';
  22. }
  23. }
  24. else{
  25. if(!empty($haslo))
  26. {
  27. $zapytanie=("SELECT * FROM uzytkownicy WHERE haslo='".$haslo."'");
  28. $wynik=mysql_num_rows($zapytanie);
  29. if ($wynik==0)
  30. {
  31. echo 'Podane haslo jest nieprawidłowe.';
  32. }
  33. if (isset($haslo))
  34. {
  35. $zapytanie="UPDATE uzytkownicy SET nowe_haslo='$nowehaslo',nowe_haslo2='$nowe_haslo2' WHERE login='$login'";
  36. $wynik=mysql_query($zapytanie) or die (mysql_error());
  37. if ($wynik==true)
  38. {
  39. echo 'Haslo zostało zmienione';
  40. }
  41.  
  42. }
  43. }
  44. }
  45. }
  46.  
  47.  
  48.  
  49.  
  50. ?>
gigzorr
a gdzie blad?!
outsider
poprawiłem kilka błędów
  1. <?php
  2. include ('sprawdz3.php');
  3. include ('db.php');
  4.  
  5. $haslo=$_POST['haslo'];
  6. $nowe_haslo=$_POST['nowe_haslo'];
  7. $nowe_haslo2=$_POST['nowe_haslo2'];
  8.  
  9. if ($_POST['ok'])
  10. {
  11. $nowe_haslo = trim(strip_tags( mysql_real_escape_string(HTMLSpecialChars($nowe_haslo))));
  12. $nowe_haslo2 = trim(strip_tags( mysql_real_escape_string(HTMLSpecialChars($nowe_haslo2))));
  13.  
  14. if (empty ($haslo) || empty($nowe_haslo) || empty($nowe_haslo2))
  15. echo 'Uzupełnij wszystkie pola';
  16. elseif ($nowe_haslo != $nowe_haslo2)
  17. echo 'Podane hasłą są różne<br />';
  18. else
  19. {
  20. $zapytanie=mysql_query("SELECT * FROM uzytkownicy WHERE haslo='".$haslo."'");
  21. $wynik=mysql_num_rows($zapytanie);
  22.  
  23. if ($wynik==0)
  24. echo 'Podane haslo jest nieprawidłowe.';
  25. else
  26. {
  27. $zapytanie="UPDATE uzytkownicy SET nowe_haslo='$nowe_haslo', nowe_haslo2='$nowe_haslo2' WHERE login='$login'";
  28. $wynik=mysql_query($zapytanie) or die (mysql_error());
  29.  
  30. if ($wynik==true)
  31. echo 'Haslo zostało zmienione';
  32.  
  33. }
  34. }
  35. }
  36.  
  37.  
  38. ?>


rób wcięcia!
aagaaz
Jeszcze coś jest nie tak, ponieważ wyswietla mi się poprawnie formularz i wszystko od linijki 20 do końca ciągłym tekstem. Coś takiego:


'; else { $zapytanie=mysql_query("SELECT * FROM uzytkownicy WHERE haslo='".$haslo."'"); $wynik=mysql_num_rows($zapytanie); if ($wynik==0) echo 'Podane haslo jest nieprawidłowe.'; else { $zapytanie="UPDATE uzytkownicy SET nowe_haslo='$nowe_haslo', nowe_haslo2='$nowe_haslo2' WHERE login='$login'"; $wynik=mysql_query($zapytanie) or die (mysql_error()); if ($wynik==true) echo 'Haslo zostało zmienione'; } } } session_destroy(); ?>
lwc
Z tego co widzę w formularzu po naciśnięciu przycisku wykonuje się skrypt umieszczony w pliku html. Nie muszę chyba mówić, że to raczej nie ma szansy powodzenia, bo kod się nie wykona.
aagaaz
Tak faktycznie to powodowało błąd...
Poprawiłam , ale teraz po wpisaniu nowych haseł pojawia się

echo 'Uzupełnij wszystkie pola';

Mimo, że mam wszystkie pola wypełnione...
outsider
wklej kod jeszcze raz
aagaaz
Proszę kod :

  1. <?php
  2.  
  3. $haslo=$_POST['haslo'];
  4. $haslo2=$_POST['haslo2'];
  5. $nowe_haslo=$_POST['nowe_haslo'];
  6. $nowe_haslo2=$_POST['nowe_haslo2'];
  7.  
  8. if ($_POST['ok'])
  9. {
  10. $nowe_haslo = trim(strip_tags( mysql_real_escape_string(HTMLSpecialChars($nowe_haslo))));
  11. $nowe_haslo2 = trim(strip_tags( mysql_real_escape_string(HTMLSpecialChars($nowe_haslo2))));
  12.  
  13. if (empty ($haslo) || empty($nowe_haslo) || empty($nowe_haslo2))
  14. echo 'Uzupełnij wszystkie pola';
  15. elseif ($nowe_haslo != $nowe_haslo2)
  16. echo 'Podane hasłą są różne<br />';
  17. else
  18. {
  19. $zapytanie=mysql_query("SELECT * FROM uzytkownicy WHERE haslo='".$haslo."'");
  20. $wynik=mysql_num_rows($zapytanie);
  21.  
  22. if ($wynik==0)
  23. echo 'Podane haslo jest nieprawidłowe.';
  24. else
  25. {
  26. $zapytanie="UPDATE uzytkownicy SET haslo='$nowe_haslo', haslo2='$nowe_haslo2' WHERE login='$login'";
  27. $wynik=mysql_query($zapytanie) or die (mysql_error());
  28.  
  29. if ($wynik==true)
  30. echo 'Haslo zostało zmienione';
  31.  
  32. }
  33. }
  34. }
  35.  
  36.  
  37. ?>


Zmieniłam także ten kawałek haslo='$nowe_haslo', haslo2='$nowe_haslo2' żeby dobrze aktualizowało mi się w bazie danych... Tak myślę.. , poniewaz w bazie mam rekord haslo i haslo2 , czyli powinno byc ok....
qrcze_pieczone
hm...
w tym całym kodzie jedna rzecz jest dla mnie bez sensu
linia 20
  1. $zapytanie=mysql_query("SELECT * FROM uzytkownicy WHERE haslo='".$haslo."'");

powinno chyba być
  1. $zapytanie=mysql_query("SELECT * FROM uzytkownicy WHERE login="'$login'" AND haslo='".$haslo."'");

istnieje małe prawdopodobieństwo (ale istnieje) że ktoś inny będzie miał takie samo hasło
outsider
Nie jest możliwe aby wyświetlał się ten komunikat. Sprawdź czy w formularzu masz wartości atrybutów name takie same jak w skrypcie przy zapisywaniu zmiennych $_POST do zmiennych ($haslo, $nowe_haslo, itp), bo być może zmieniłaś coś w formularzu i w tych zmiennych nic nie ma smile.gif
aagaaz
Poprawiłam wartości name ...

Ale teraz wywała mi :
Podane haslo jest nieprawidłowe.

  1. <?php
  2.  
  3. $haslo=$_POST['haslo'];
  4. $haslo2=$_POST['haslo2'];
  5. $nowe_haslo=$_POST['nowe_haslo'];
  6. $nowe_haslo2=$_POST['nowe_haslo2'];
  7.  
  8. if ($_POST['ok'])
  9. {
  10. $nowe_haslo = trim(strip_tags( mysql_real_escape_string(HTMLSpecialChars($nowe_haslo))));
  11. $nowe_haslo2 = trim(strip_tags( mysql_real_escape_string(HTMLSpecialChars($nowe_haslo2))));
  12.  
  13. if (empty ($haslo) || empty($nowe_haslo) || empty($nowe_haslo2))
  14. echo 'Uzupełnij wszystkie pola';
  15. elseif ($nowe_haslo != $nowe_haslo2)
  16. echo 'Podane hasłą są różne<br />';
  17. else
  18. {
  19. $zapytanieSelect=mysql_query("SELECT * FROM uzytkownicy WHERE haslo='".$haslo."'");
  20.  
  21. $wynikSelect=mysql_fetch_array($zapytanieSelect);
  22.  
  23. if ($wynikSelect==0)
  24. echo 'Podane haslo jest nieprawidłowe.';
  25. else
  26. {
  27. $zapytanieUpdate="UPDATE uzytkownicy SET haslo='$nowe_haslo', haslo2='$nowe_haslo2' WHERE login='$login'";
  28. $wynikUpdate=mysql_query($zapytanieUpdate) or die (mysql_error());
  29.  
  30. if ($wynikUpdate==true)
  31. echo 'Haslo zostało zmienione';
  32.  
  33. $updateHasla=mysql_query($zapytanieUpdate);
  34. }
  35. }
  36. }
  37.  
  38.  
  39. ?>



Sama już doszłam do tego co było źle...

Nowy kod po poprawkach... Może komus się przyda...

  1. <?php
  2.  
  3. include ('db.php');
  4.  
  5. if (isset($_SESSION['login']))
  6. {
  7.  
  8. if($nowe_haslo != $nowe_haslo2)
  9. {
  10. echo 'Musisz wypelnic wszystkie pola';
  11. }
  12.  
  13. $id=$_SESSION['id'];
  14. $login=$_SESSION['login'];
  15. $haslo=$_POST['haslo'];
  16. $nowe_haslo=$_POST['nowe_haslo'];
  17. $nowe_haslo2=$_POST['nowe_haslo2'];
  18.  
  19.  
  20. $login = mysql_real_escape_string($login);
  21. $haslo = mysql_real_escape_string($haslo);
  22. $nowe_haslo = mysql_real_escape_string($nowe_haslo);
  23. $nowe_haslo2 = mysql_real_escape_string($nowe_haslo2);
  24.  
  25.  
  26.  
  27. $zapytanie= "UPDATE `uzytkownicy` set haslo=md5('$nowe_haslo'), haslo2=md5('$nowe_haslo2') where login='$login'";
  28. $wynik = mysql_query($zapytanie);
  29. echo "Haslo zostało zmienione poprawnie.";
  30. }
  31.  
  32. ?>


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.