Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Formularz zmiany hasła
Forum PHP.pl > Forum > Przedszkole
krzychu0808
Chcę zrobić formularz zmiany hasła ale chyba źle napisałem zapytanie do bazy danych napisałem tak:
  1. <?php
  2. $connection = mysql_connect('localhost', 'aikon_testowa', 'xxxxx');
  3. mysql_select_db('aikon_testowa');
  4. $query = "update `dane` set 
  5. `userpassword`='{$userpassword}'
  6.  where `usernumber`='{$numer_usera}'";
  7. $zmiana = mysql_query($query, $connection);
  8. if($zmiana) echo '<div class="blad1"><br/>Hasło zostało zmienione<br/><br/></div>';
  9. ?>


proszę o pomoc co źle zrobiłem
rafalp
  1. "update dane set
  2. userpassword='$userpassword'
  3. where usernumber='$numer_usera'"


bez średników przy nazwach pól.
krzychu0808
kurde dalej mi nie działa zrobiłem tak
  1. <html>
  2. <head><title>Zmiana Hasła || Dane Użytkownika</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"></head>
  3. <body>
  4. <?php
  5. echo "Zmiana Hasła Usera ID $numer_usera";
  6. if($_POST[form_wyslany]){
  7. if(empty($_POST['userpassword']))
  8. {
  9. echo '- Podaj Hasło<br/>';
  10. $error=1;
  11. }
  12. elseif($_POST[userpassword]!=$_POST[userpassword1]){
  13. echo '- Wybrane i Powtórzone Hasła nie są identyczne';
  14. $error=1;
  15. }
  16. }
  17. if($_POST[form_wyslany] && !$error){
  18. $connection = mysql_connect('localhost', 'aikon_testowa', 'xxxxxxxx');
  19. mysql_select_db('aikon_testowa');
  20. $query = "update dane set
  21. userpassword='$userpassword'
  22. where usernumber='$numer_usera'";
  23. $zmiana = mysql_query($query, $connection);
  24. if($zmiana) echo '<div class="blad1"><br/>Hasło zostało zmienione<br/><br/></div>';
  25. }
  26. if(!$zmiana){
  27. echo '<form method="post" action="haslo.php">';
  28. echo '<B>Hasło:</b><BR><input type="password" name="userpassword"><br/>';
  29. echo '<B>Powtórz Hasło:</b><BR><input type="password" name="userpassword1"><BR>';
  30. echo '<input type="submit" value="Zmień Hasło">';
  31. echo '<input type="hidden" name="form_wyslany" value="1">';
  32. echo '</form>';
  33. }
  34. else{
  35. #session_destroy();
  36.  
  37. echo 'dodano usera poprawnie sranie w banie';
  38. }
  39. ?>

wyświetla sie ładnie hasło zmienione ale nie zmienia się w bazie danych proszę o pomoc
rafalp
A sorki za niedopatrzenie:

  1. WHERE usernumber=$numer_usera


$numer_usera też daj bez średników bo to przecież watrość liczbowa.
Kicok
1. Dlaczego raz piszesz $userpassword, a innym razem $_POST['userpassword']
2. Skąd bierzesz zmienną $numer_usera

3. I najmniej istotne: Dlaczego raz piszesz $_POST['userpassword'] a innym razem: $_POST[userpassword]
krzychu0808
1. napisałem $userpassword w zapytaniu do bazy bo nie umiałem zamienić tego $_POST['userpassword']
2. $numer_usera jest przesyłany z poprzedniego formularza
  1. <?php
  2. <td><center><form method=POST action=haslo.php><input type=hidden name=numer_usera value=$row_get[usernumber]><input type=submit value=Zmień></form></center></td>";
  3. ?>

i jest przesyłany bo jak wejde to pisze Zmiana Hasła Usera ID xxx
3. tak jakoś

ale dalej nie działa jak zmieniłem na where usernumber=$numer_usera to gdy kliknę "zmień hasło" zostają dalej pola ale znika numer w zdaniu Zmiana Hasła Usera ID więc mi się zdaje że coś gdzieś zgubiłem i on przy wysyłaniu gubi gdzieś $numer_usera ..
Victor152
  1. <?php
  2. $query = "update dane set userpassword='".$userpassword."' where usernumber='".$numer_usera."'";
  3. ?>


Spróbuj tak.
pyro
a teraz exploit:

Kod
www.xyz.pl/?userpassword=nowehaselko' WHERE usernumber = (id_admina) /*
krzychu0808
też nie działa kurde ja coś zgubiłem tylko nie wiem co

o co chodzi z tym exploit questionmark.gifquestionmark.gif?
pyro
o to ze ktos w ten sposob moze wbic ci sie na stronke tongue.gif
Victor152
Napisz co Ci wyświetla.

#Co do exploita
Niezłe jaja z tym są^^
Ktoś Ci może bazę usunąć jak nie zabezpieczysz tongue.gif

  1. <?php
  2. $query = "update dane set userpassword='".$POST['userpassword1']."' where usernumber='".$numer_usera."'";
  3. ?>

Pozatym musisz gdzieś napisać co to $numer_usera, nigdzie nie ma zdefiniowanej tej zmiennej!
pyro
  1. <?php
  2. $query = "update dane set
  3. userpassword='$userpassword'
  4. where usernumber='$numer_usera'";
  5. ?>


poza tym skąd się biorą zmienne $userpassword i $numer_usera? no chyba ze masz wlaczone RWGISTER_GLOBALS....
krzychu0808
$password bierze się z
  1. <?php
  2. echo '<form method="post" action="haslo.php">';
  3. echo '<B>Hasło:</b><BR><input type="password" name="userpassword"><br/>';//tutaj <<<<<-------
  4. echo '<B>Powtórz Hasło:</b><BR><input type="password" name="userpassword1"><BR>'; 
  5. echo '<input type="submit" value="Zmień Hasło">';
  6. echo '<input type="hidden" name="form_wyslany" value="1">';
  7. echo '</form>';
  8. ?>

a jeżeli $numer_usera przesyłam z poprzedniego formularza to on przy wysyłaniu danych z tego formularza znika questionmark.gifquestionmark.gif?
mike
Jeśli pobierasz dane z formularza lub z URLa to nie sa one później widoczne jawnie tylko w tablicach $_POST i $_GET
Victor152
Czyli jednym słowem sprecyzuj $numer_usera : )
Albo go z wcześniejszych formularzy w cookie wpakuj ale to lipny pomysł.
krzychu0808
o co ci chodzi z tym sprecyzowaniem questionmark.gifquestionmark.gif
Victor152
No musisz napisać
  1. <?php
  2. $numer_usera = tutaj_login_ma_wyciagac_czy_to_z_bay_czy_to_z_sesji;
  3. ?>

Przed zapyutaniem oczywiście.
krzychu0808
zrobiłem tak że zmienna $numer_usera jest przekazywana do echo "<input type=\"hidden\" name=\"usernumber\" value=$numer_usera>"; i po wysłaniu przechodzi ona w $usernumber = $_POST['usernumber']; i dalej idzie jako $usernumber do zapytania ale jest haczyk jak ktoś wpisze źle hasło lub go nie wpisze to wyskuje stosowny błąd a zmienna znika ;/ ta zmienna $numer_usera lub $usernumber musiała by gdzieś być przechowywana jakiś pomysł questionmark.gifquestionmark.gif
  1. <html>
  2. <head><title>Zmiana Hasła || Dane Użytkownika</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"></head>
  3. <body>
  4. <?php
  5. $usernumber = $_POST['usernumber']; // 
  6. echo "Zmiana Hasła Usera ID $numer_usera<br/>";
  7. if($_POST[form_wyslany]){
  8. if(empty($_POST['userpassword']))
  9. {
  10. echo '- Podaj Hasło<br/>';
  11. $error=1;
  12. }
  13. elseif($_POST[userpassword]!=$_POST[userpassword1]){
  14. echo '- Wybrane i Powtórzone Hasła nie są identyczne<br/>';
  15. $error=1;
  16. }
  17. }
  18. if($_POST[form_wyslany] && !$error){
  19. $usernumber = $_POST['usernumber'];
  20. $connection = mysql_connect('localhost', 'aikon_testowa', 'xxxx);
  21. mysql_select_db('aikon_testowa');
  22. $query = "update dane set userpassword='$userpassword' where usernumber='$usernumber'";
  23. $zmiana = mysql_query($query, $connection);
  24. if($zmiana) echo '<div class="blad1"><br/>Hasło zostało zmienione<br/><br/></div>';
  25. }
  26. if(!$zmiana){
  27. echo '<form method="post" action="haslo.php">';
  28. echo '<B>Hasło:</b><BR><input type="password" name="userpassword"><br/>';
  29. echo '<B>Powtórz Hasło:</b><BR><input type="password" name="userpassword1"><BR>';
  30. echo '<input type="submit" value="Zmień Hasło">';
  31. echo '<input type="hidden" name="form_wyslany" value="1">';
  32. echo "<input type=\"hidden\" name=\"usernumber\" value=$numer_usera>";
  33. echo '</form>';
  34. }
  35. else{
  36. #session_destroy();
  37.  
  38. echo 'dodano usera poprawnie sranie w banie;
  39. }
  40. ?>
pyro
kszychu, zabezpiecz wkońcu ^^
krzychu0808
to mi powiedz w jaki sposób mam ją zabezpieczyć to zrobię winksmiley.jpg
pyro
niech mnie kule biją :F

szukaj na tym forum
Pride
Cytat(krzychu0808 @ 31.07.2008, 15:21:54 ) *
to mi powiedz w jaki sposób mam ją zabezpieczyć to zrobię winksmiley.jpg
No proszę cię haha.gif
mysql_real_escape_string" title="Zobacz w manualu PHP" target="_manual
addslashes" title="Zobacz w manualu PHP" target="_manual
settype" title="Zobacz w manualu PHP" target="_manual
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.