Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]Zmiana hasła
Forum PHP.pl > Forum > Przedszkole
DaSki
Chce aby na stronie było zmiana hasła urzytkownika. Od 2 dni nic nie moge wymyśleć,bo nie wiem jak porównac istniejące hasło do hasła z bazy.
Mam tablice usere, a w niej pola:user_haslo, user_login. Tu mam kod który napisałem:
  1. <?php
  2. include("config.php");
  3. mysql_connect("$host", "$user", "$pass")or die("Nie można nawiązać połączenia z bazą");
  4. mysql_select_db("$base")or die("Wystąpił błąd podczas wybierania bazy danych");
  5.  
  6. $nowe=$_POST['newpass'];
  7. $renowe=$_POST['renewpass'];
  8. $old=$_POST['oldpass'];
  9. ?>

Z gury dzieki.
Maciekbjw
Więc najprostszy skrypt powinien wyglądać tak
1)łaczysz się z bazą
2) Robisz formularz
3) Przesyłasz dane i uaktualniasz rekordy w bazie, czyli podajesz login i hasło użytkownika w formularzu, nastepnie ładujesz zapytanie
Kod
$haslo = $_POST['haslo']; //przeslane z formularza
$login = $_POST['login'];  //przeslane z formularza
mysql_query("UPDATE `users` SET `haslo` = '$haslo' WHERE login = '$login'');
echo 'Haslo zmienione!';


Najprosciej to mozesz tak zrobić. Oczywiście podałem Ci tylko przykład. Pozdrawiam.
marcio
  1. <?php
  2. echo('<form method="post" action="'.$_SERVER['PHP_SELF'].'">
  3. <div>
  4. <center><input type="text" name="pass" value="Stare haslo" style="background-color:#ECECEC; color:#000000; border: 1px solid red;"></center>
  5. <center><input type="password" name="new_pass" value="Nowe haslo" style="background-color:#ECECEC; color:#000000; border: 1px solid red;"></center>
  6. <Br>
  7. <center><input type="submit" name="zmien_haslo" value="Zmien haslo" style="background-color:#ECECEC; color:#000000; border: 1px solid blue;"></center>
  8. </div>
  9. </form>');
  10.  
  11. //Sprawdzenia czy haslo pola nie sa puste czy hasla nie sa zadlugioe etc
  12. //i potem
  13.  
  14. if(!empty($_POST['pass']) && !empty($_POST['new_pass']) && isset($_POST['zmien_haslo'])) {
  15.  
  16.  
  17. $query1 = ('select HASLO from TABELA where login = "'.mysql_real_escape_string($_COOKIE['name']).'"');
  18.  $wynik1 = mysql_query($query1, $db);
  19. $pass = md5($_POST['pass']);
  20. $new_pass = md5($_POST['new_pass']);
  21.  
  22. $stare_haslo = mysql_fetch_assoc($wynik1);
  23.  
  24. if($pass == $stare_haslo['haslo']) {
  25.  
  26. if(mysql_query('update TABELA set HASLO = "'.$new_pass.'" where login = "'.mysql_real_escape_string($_COOKIE['name'].)'"')) {
  27. echo('<table align="center"><tr><td class="contents" align="center"><b style="color:#f00">Haslo zostalo zmienione</b></td></tr></table>');
  28. }
  29. else echo('<script>alert("Blad podczas zmiany hasla prosze sprobowac pozniej");</script>');
  30.  
  31. }
  32.  
  33. else echo('<script>alert("Podales zle stare haslo");</script>');
  34. }
  35. ?>

Mniej wiecej cos takiego ja tak robie w cms'ie oczywiscie filtruje dane i robie wszystkie sprawdzenia
DaSki
marcio masz dobrze (tylko źle postawiłeś jedna kropkę nie w tym miejscu) tylko jak masz logowanie na cookie a ja mam właśnie logowanie na sesje i właśnie nie wiem co w stawić przy WHERE user_login = questionmark.gif? bo nie wiem jak zrobić żeby ten login był pokazany
marcio
Kropke wiem ze mam zle bo kod dalem ze starje wersji i mialem addslashes zam iast tego mysql_real_escape_sttring zmienilem i nie zuaywazylem a jak to roznica ze masz na sesjach zamiast $_COOKIE dajesz $_SESSSION['nazwa_sesji']; albo przypisujesz ja do zmiennej i dopiro dajesz 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.