Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Zmiena hasła :S
Kenexos
post
Post #1





Grupa: Zablokowani
Postów: 60
Pomógł: 0
Dołączył: 6.08.2008
Skąd: Gdynia

Ostrzeżenie: (20%)
X----


TEMAT DO ZAMKNIĘCIA!!
Dzięki phpion i kaem sobie poradziłem.

Ten post edytował Kenexos 6.08.2008, 17:10:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
Max Damage
post
Post #2





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

Ostrzeżenie: (0%)
-----


Możliwe że coś mi padło na oczy, ale nie widzę połączenia z bazą.....
Go to the top of the page
+Quote Post
Pride
post
Post #3





Grupa: Zarejestrowani
Postów: 139
Pomógł: 11
Dołączył: 31.01.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


hmmm może to hasło co masz w bacie jest w md5? Ten pass co podałeś nie wygląda na to, ale....

Najlepiej daj
  1. <?php
  2. echo $old.'<br />'; echo $new.'<br />'; echo $array['password'];
  3. ?>

To bedzisz widział czy old == to co w bazie ;p

Ten post edytował Pride 6.08.2008, 12:14:36
Go to the top of the page
+Quote Post
kaem
post
Post #4





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Powinno być:
  1. <?php
  2. $password = $array['haslo'];
  3. if(sha1($old) == $password)
  4. ...
  5. $query = mysql_query("UPDATE `user` SET `haslo` = sha1('$new').......
  6. ?>

Zastosowałem funkcje sha1, ale ty wstaw taką jaką sam szyfrujesz hasło.

Ten post edytował kaem 6.08.2008, 15:42:00
Go to the top of the page
+Quote Post
Kenexos
post
Post #5





Grupa: Zablokowani
Postów: 60
Pomógł: 0
Dołączył: 6.08.2008
Skąd: Gdynia

Ostrzeżenie: (20%)
X----


Ok ale i tak nie działa chyba dlatego że nie znam swojego kodowania.(IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Na 100% to nie jest md5..
Może ktoś umi odczytać jakie to z logowanie więc:
  1. <?php
  2. function usun($data){
  3.  
  4. GLOBAL $dbc;
  5. if (ini_get('magic_quotes_gpc')){
  6. $data = stripslashes($data);
  7. }
  8.  return mysql_real_escape_string($data, $dbc);
  9. }
  10. if (isset($_POST['submit'])){
  11.  
  12. if (empty($_POST['login'])){
  13. $message .= '<font class="blad">Nie podałeś loginu</font><br />';
  14. $l = FALSE;
  15. }else{
  16. $l = usun($_POST['login']);
  17. }
  18.  
  19. if (empty($_POST['haslo'])){
  20. $message .= '<font class="blad">Nie podałeś hasła</font><br />';
  21. $h = FALSE;
  22. }else{
  23. $h = usun($_POST['haslo']);
  24. }  
  25. if ( $l && $h ){
  26.  
  27. $query = "SELECT username, access  FROM user WHERE username='$l' AND haslo=password('$h')";
  28. $result = mysql_query($query);
  29. $row = mysql_fetch_array ($result, MYSQL_ASSOC);
  30. ?>


Proszę o odpowiedź.
Go to the top of the page
+Quote Post
kaem
post
Post #6





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $query = "SELECT username, access  FROM user WHERE username='$l' AND haslo=password('$h')";
  3. ?>

Tutaj widać, że stosujesz password, ja jednak bym polecał sha1 albo md5.
Go to the top of the page
+Quote Post
Kenexos
post
Post #7





Grupa: Zablokowani
Postów: 60
Pomógł: 0
Dołączył: 6.08.2008
Skąd: Gdynia

Ostrzeżenie: (20%)
X----


No dobra zmieniłem na md5 i działa thx ;]
Ale wracając do skryptu zmiany hasła i tak nie działa ciągle po wpisaniu hasła pisze Incorrect Password ..
  1. <?php
  2. $username = $_SESSION['username'];
  3. ?>
  4.  
  5. <?
  6. if(!$username || $username=="") { die("You are not logged in!"); }
  7. if(!$_POST['posted']) { ?>
  8. <form action="index.php?show=changepass" method="post">
  9. Old Password: <input type="password" name="old"><br/>
  10. New Password: <input type="password" name="new"><br/>
  11. <center><input type="submit" name="posted" value="Change Password"></center>
  12. </form>
  13. <? } else {
  14. $old = $_POST['old'];
  15. $new = $_POST['new'];
  16. $query = mysql_query("SELECT * FROM `user` WHERE(`user_id`='$username')") or die("Could not select account $username! ".mysql_error());
  17. $array = mysql_fetch_array($query);
  18. $password = $array['haslo'];
  19. if(md5($old) == $password) {
  20. $query = mysql_query("UPDATE `user` SET `haslo` = md5('$new') WHERE `user`.'$username' LIMIT 1") or die("Could not Change password! ".mysql_error());
  21. echo 'Password changed successfully!';
  22. } else {
  23. echo 'Incorrect Password!';
  24. }
  25. }
  26. ?>

Możliwe że mam źle powpisywane dane bazy danych??

Ten post edytował Kenexos 6.08.2008, 16:23:59
Go to the top of the page
+Quote Post
kaem
post
Post #8





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Ale pozmieniałeś wpisy w bazie? Wywal starych użytkowników i utwórz nowych z hasłem zakodowanym za pomocą md5. Albo tylko pozmieniaj same hasła.

Ten post edytował kaem 6.08.2008, 16:27:11
Go to the top of the page
+Quote Post
Kenexos
post
Post #9





Grupa: Zablokowani
Postów: 60
Pomógł: 0
Dołączył: 6.08.2008
Skąd: Gdynia

Ostrzeżenie: (20%)
X----


wiem stworzyłem nowe konta z md5 zalogowałem się wchodzę na stronę zmiany hasła i cały czas incorect password ;/ chyba z tego skryptu już nic nie pójdzie co? ja już nie wiem co jest źle..
Go to the top of the page
+Quote Post
kaem
post
Post #10





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Pokaż jakiego typu i jaką długość ma pole haslo w tabeli. Może jest za krótkie albo ma zły typ. Pole powinno być typu char o długości 32 bo chyba tyle zwraca md5(nie jestem pewien).

Ten post edytował kaem 6.08.2008, 16:52:19
Go to the top of the page
+Quote Post
Kenexos
post
Post #11





Grupa: Zablokowani
Postów: 60
Pomógł: 0
Dołączył: 6.08.2008
Skąd: Gdynia

Ostrzeżenie: (20%)
X----


W bazie mam takie coś:
(IMG:http://images.net.pl/file/gyogpds37270io1vo639.png)
Go to the top of the page
+Quote Post
kaem
post
Post #12





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Lol, a wracając do skryptu zamiast
  1. <?php
  2. $query = mysql_query("SELECT * FROM `user` WHERE(`user_id`='$username')")
  3. ?>

powinno być
  1. <?php
  2. $query = mysql_query("SELECT * FROM `user` WHERE(`username`='$username')")
  3. ?>


EDIT//
tak mi się wydaje (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował kaem 6.08.2008, 17:01:29
Go to the top of the page
+Quote Post
Kenexos
post
Post #13





Grupa: Zablokowani
Postów: 60
Pomógł: 0
Dołączył: 6.08.2008
Skąd: Gdynia

Ostrzeżenie: (20%)
X----


No dobra teraz mam taki błąd:
Could not Change password! You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''test' LIMIT 1' at line 1


@edit
Możliwe że jest coś źle tera w :
$query = mysql_query("UPDATE `user` SET `haslo` = md5('$new') WHERE `user`.'$username' LIMIT 1") or die("Could not Change password! ".mysql_error());

Ten post edytował Kenexos 6.08.2008, 17:03:47
Go to the top of the page
+Quote Post
kaem
post
Post #14





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Usuń ten limit (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Chyba w UPDATE nawet go się nie używa;]

EDIT//
i proszę niech w końcu zadziała (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował kaem 6.08.2008, 17:07:05
Go to the top of the page
+Quote Post
phpion
post
Post #15





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(kaem @ 6.08.2008, 18:04:39 ) *
Usuń ten limit (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Chyba w UPDATE nawet go się nie używa;]

Używa się.

  1. <?php
  2. $query = mysql_query("UPDATE `user` SET `haslo` = md5('$new') WHERE `username`='$username' LIMIT 1") or die("Could not Change password! ".mysql_error());
  3. ?>
Go to the top of the page
+Quote Post
Kenexos
post
Post #16





Grupa: Zablokowani
Postów: 60
Pomógł: 0
Dołączył: 6.08.2008
Skąd: Gdynia

Ostrzeżenie: (20%)
X----


OK THX!!! DZIAŁA ALL!!! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Teraz tylko edycja swoich danych po zalogowaniu ale to w innym temacie już napisałem i tak nikt dokładnie nie pomógł..;/

Ten post edytował Kenexos 6.08.2008, 17:09:20
Go to the top of the page
+Quote Post
kaem
post
Post #17





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Z tym Update to racja, można używać LIMIT. Mój błąd.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 20:33