Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z formularzem zmiany hasła
Forum PHP.pl > Forum > Przedszkole
fotex
Witam

Problem jest tego typu:
Zrobiłem formularz zmiany hasła...oto on:

  1. <form action="zmienhaslo.php" method="post">
  2.  
  3.  
  4. Podaj swoja nazwe użytkownika:<br />
  5. <input name="user"><br>
  6. <input type="password" name="starehaslo"><br>
  7. <input type="password" name="nowehaslo"><br>
  8. <input type="password" name="powtorzhaslo"><br>
  9.  
  10.  
  11. <input type="submit" name="submit" value="Zmień hasło">
  12.  
  13. </form>


i skrypt php sprawdzający czy wartość pola "user" istnieje w bazie oraz czy "starehasło" równiez.Nastepnie sa pola "nowehaslo" oraz "powtorzhaslo". i tu pojawia sie problem. skrypt zostaje wykonany pomimo tego iz pola "nowehaslo" i "powtorzhaslo" sa różne nadpisujac hasło w bazie tym z pola "nowehaslo"
Oto kod php:
  1. <?php
  2. $polaczenie = @mysql_connect('localhost', 'myszcz01_aukcja', 'komiszke') or die('Brak połączenia z serwerem mysql. Błąd: '.mysql_error());
  3. $db = @mysql_select_db('myszcz01_aukcja', $polaczenie) or die ('Nie mogę połączyć się z bazą danych. Błąd: '.mysql_error());
  4.  
  5.  
  6. $wynik = mysql_query("SELECT * FROM lance_buyers WHERE buyer_username='".$_POST[user]."' AND buyer_password='".md5($_POST[starehaslo])."';") or die('Błąd zapytania'); 
  7.  
  8. if (mysql_num_rows($wynik) == 1){
  9.  
  10.  
  11. if ($_post[nowehaslo] == $_post[powtorzhaslo]){
  12.  
  13. $new_pwdmd = md5($_POST[nowehaslo]);
  14.  
  15. $update = mysql_query("UPDATE lance_buyers SET buyer_password='".$new_pwdmd."' WHERE buyer_username='".$_POST[user]."';");
  16.  
  17. echo "hasło zostało zmienione";
  18.  
  19. }else{
  20.  
  21. echo "pola nowe haslo i powtórz haslo nie sa identyczne";
  22. }
  23.  
  24.  
  25. }
  26. ?>


Jak to powinno w takim razie poprawnie wygladac?Prosze o pomoc...

Ps: Skrypt nie generuje błędów wiec składniowo jest ok aczkolwiek z logiką coś jest nie tak
kszychu
Pisze się $_POST a nie $_post.
fotex
co racja to racja ...ale dlaczego w takim razie skrypt nie zwrócił błędu?
kszychu
bo false == false smile.gif
Lion_87
a może!!!

if ($wynik == 1 && $_POST[nowehaslo] == $_POST[powtorzhaslo]){

//////tu kod

echo "hasło zostało zmienione";

}else{

echo "pola nowe haslo i powtórz haslo nie sa identyczne";
}
fotex
  1. <?php
  2. $polaczenie = @mysql_connect('localhost', 'myszcz01_aukcja', 'komiszke') or die('Brak połączenia z serwerem mysql. Błąd: '.mysql_error());
  3. $db = @mysql_select_db('myszcz01_aukcja', $polaczenie) or die ('Nie mogę połączyć się z bazą danych. Błąd: '.mysql_error());
  4.  
  5.  
  6. $wynik = mysql_query("SELECT * FROM lance_buyers WHERE buyer_username='".$_POST[user]."' AND buyer_password='".md5($_POST[starehaslo])."';") or die('Błąd zapytania'); 
  7.  
  8. if (mysql_num_rows($wynik) == 1){
  9. }else{
  10. echo "nazwa urzytkownika lub aktualne hasło sa niepoprawne ";
  11.  
  12. if ($_POST[nowehaslo] == $_POST[powtorzhaslo]){
  13.  
  14. $new_pwdmd = md5($_POST[nowehaslo]);
  15.  
  16. $update = mysql_query("UPDATE lance_buyers SET buyer_password='".$new_pwdmd."' WHERE buyer_username='".$_POST[user]."';");
  17.  
  18. echo "hasło zostało zmienione";
  19.  
  20. }else{
  21.  
  22. echo "Pola nowe haslo i powtórz haslo nie sa identyczne";
  23. }
  24.  
  25.  
  26. }
  27. ?>


cos jest teraz nie tak z tym skryptem bo jesli nazwa usera i aktualne hasło sa nieprawidłowe a hasła nowe i powtórzone sa identyczne to wywala cos takiego "nazwa urzytkownika lub aktualne hasło sa niepoprawne hasło zostało zmienione":)
Lion_87
Po co tak mieszasz zrób tak jak napisałem wyżej:)
fotex
To znaczy jak bo teraz to juz nic nie rozumiem.Prosze o wytłumaczenie
Lion_87
Cytat(fotex @ 13.12.2007, 17:34:56 ) *
To znaczy jak bo teraz to juz nic nie rozumiem.Prosze o wytłumaczenie


A co ja pisze po Chińsku:)

<?php
$polaczenie = @mysql_connect('localhost', 'myszcz01_aukcja', 'komiszke') or die('Brak połączenia z serwerem mysql. Błąd: '.mysql_error());
$db = @mysql_select_db('myszcz01_aukcja', $polaczenie) or die ('Nie mogę połączyć się z bazą danych. Błąd: '.mysql_error());


$wynik = mysql_query("SELECT * FROM lance_buyers WHERE buyer_username='".$_POST[user]."' AND buyer_password='".md5($_POST[starehaslo])."';") or die('Błąd zapytania');

if (mysql_num_rows($wynik) == 1 && $_POST[nowehaslo] == $_POST[powtorzhaslo]){

$new_pwdmd = md5($_POST[nowehaslo]);

$update = mysql_query("UPDATE lance_buyers SET buyer_password='".$new_pwdmd."' WHERE buyer_username='".$_POST[user]."';");


echo "hasło zostało zmienione";

}else{

echo "pola nowe haslo i powtórz haslo nie sa identyczne";
}
?>


możesz jeszcze dwa if dodać
1) gdy nie ma takiego usera
2) gdy hasło jest złe
fotex
Dziekuje wam za pomoc teraz jest ok...pozdrawiam
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.