Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] skrypt zmiany hasła
Forum PHP.pl > Forum > Przedszkole
iksior
Witam ! chciał bym napisać skrypt zmiany hasła użytkownika z bazy danych, ale kompletnie nie wiem jak się do tego zabrać... czy może mi ktoś pomóc ?
thek
Formularz zmiany hasła, gdzie podajesz i stare i nowe. Jeśli stare zgadza się z aktualnym, zatwierdzasz nowe.
iksior
  1. Zmiana Hasła:
  2. <BR><BR><fieldset>
  3. <form action='' method='post'>
  4. Nowe Hasło:<input type='password' name='password'><BR><BR>
  5. Powtórz Hasło:<input type='password' name='password2'><BR><BR>
  6. <input type='submit' name='submit' value='Zmień'>
  7. </form>
  8. </fieldset>
  9. <?php
  10. include ('includes/config_includes.php');
  11. include ('sesja.php');
  12. if (!empty($_POST['password']) && !empty($_POST['password2']) && $_POST['password'] == $_POST['password2'])
  13. {
  14. $zapyt=mysql_query("SELECT `user_id`, `user_name` FROM `users` WHERE `user_name` = '$log'");
  15. $wynik=mysql_fetch_array($zapyt);
  16. $id=$wynik["id"];
  17. echo("$id");
  18. $change = "UPDATE `baza1`.`users` SET `user_password` = '$password2' WHERE `users`.`user_id` = '$id' LIMIT 1";
  19. }else{
  20. echo 'Wpisałeś dwa rózne hasła<BR>'; }
  21. if (@mysql_query ($change)) {
  22. echo "Gratulujemy $nick twoje hasło zostało zmienione";
  23. } else {
  24. echo "Error"; }
  25. ?>

Mam coś takiego gotowiec ściągnięty z neta ale raczej średnio działa... ;/ i nie wiem co jest nie tak
darophp
Noo... w końcu się podzielę kodem smile.gif Looknij i pozmieniaj smile.gif
  1. $logged = isset($_REQUEST["logged"])?($_REQUEST["logged"]):"";
  2.  
  3. if ($logged=="change_pass") {
  4.  
  5. $password = htmlspecialchars(stripslashes(trim($_POST["password"])), ENT_QUOTES);
  6.  
  7. if (strlen($password)<3 or strlen($password)>32
  8. or !eregi("^[a-zA-Z0-9]+$",$password)) { $blad++;
  9. echo "<p style=\"color:red;\">Hasło musi mieć od 3 do 32 znaków bez polskich liter i spacji!</p>";
  10. }
  11.  
  12. if ($blad==0) {
  13. $password = md5($password);
  14. $wynik = mysql_query("UPDATE users SET password='$password' WHERE login='{$_SESSION["login"]}'");
  15. if ($wynik) {
  16. $data_true_pass = "<p>Hasło zostało zmienione</p>";
  17. $_SESSION["password"] = $password;
  18. }
  19. } else $data_false_pass = "<p>Hasło nie zostało zmienione !</p>";
  20. }
  21.  
  22. $wynik=mysql_query("SELECT * FROM users WHERE login='{$_SESSION["login"]}'");
  23. if (mysql_num_rows($wynik)==1) {
  24. $dane=mysql_fetch_array($wynik);
  25. echo <<<KONIEC
  26. <div class="right">
  27. <form action="/profile" method="post">
  28.  <input type="hidden" name="logged" value="change_pass" />
  29.  <table style="padding: 10px; padding-top: 5px;" >
  30.   <tr>
  31.   <td><p>Hasło: </p></td>
  32.   <td><input type="password" name="password" value="" /></td>
  33.   </tr>
  34.   <tr>
  35.   <td><input type="submit" class="send" value=" Zapisz hasło " /></td>
  36.   </tr>
  37.  </table>
  38. <p>$data_true_pass $data_false_pass</p>
  39. </form>
  40. </div>
  41. KONIEC;
  42. }
thek
Bo to masz gotowiec przerobiony. Jak byk widać, że warunki w IF sa złe. Chodzi o ten ostatni. Sprawdzasz czy password1 nie jest puste i czy password2 nie jest puste i czy password1 i passowrd2 są takie same biggrin.gif Tak więc to zadziała tylko gdy oba nie są puste, a co weselsze, tylko gdy są identyczne winksmiley.jpg Tam na bank w skrypcie były 3 pola haseł. Jedno stare i dwa nowe, przy czym drugie nowe było po to, by porównać je między sobą czy nie walnąłeś literówki. Zgadłem? winksmiley.jpg Przerobiłeś nieprawidłowo jakiś gotowiec netowy i dlatego masz byki teraz, bo zrobiłeś to bez przyjrzenia się dokładnie co i jak działa. Przyjrzyj dokładnie i przemyśl co ma być sprawdzane oraz kiedy. Rozpisz algorytm jak to ma wyglądać i te punkty obkładaj funkcjami oraz kodem. Krok po kroku a dojdziesz do wyniku smile.gif
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.