![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 14.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam problem. Mam skrypt, który zmienia hasło. Fajnie ale jest tylko jedno pole "Nowe hasło" i nawet nie sprawdza czy stare hasło się zgadza. oto skrypt:
W czym potrzebuję pomocy? Chcę aby było nowe pole "Stare hasło" i będzie trzeba je uzupełnić i jeżeli hasło będzie zgodne z tym w bazie to hasło zmienia się na hasło z pola "nowe hasło". Chyba dokładnie wyjaśniłem. Chodzi mi tylko o funkcje sprawdzania hasła w bazie i przepuszczania, bo dodanie pola do formularza to nie problem. Mam nadzieję że dobrze wyjaśniłem. Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Masz w klasie do logowania sprawdzanie hasła, wystarczy skopiować część odpowiedzialną za sprawdzanie hasła i voila.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 14.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Masz w klasie do logowania sprawdzanie hasła, wystarczy skopiować część odpowiedzialną za sprawdzanie hasła i voila. Zrobiłem tak jak napisałeś i niestety źle to wychodzi ;/ Owszem działało że zmienia hasło jeżeli stare się zgadza ale zmieniało na hasło źle posolone i nie dało się zalogować tym nowym hasłem :/ Oto edytowany skrypt:
Ten post edytował poplop 2.04.2013, 10:11:46 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
A co w tym złego że nowe hasło ma sól? wywal wtedy to
choć to ryzykowne. -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 14.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
A co w tym złego że nowe hasło ma sól? wywal wtedy to choć to ryzykowne. Nic złego. Nie o to chodziło. Jest coś źle w kodzie. Wpisuje stare hasło, ono się zgadza, więc zmienia hasło na nowe. Zmieniając hasło na nowe ono się soli, ale chyba coś idzie nie tak, ponieważ zamiast zmienić to hasło na nowe poprawnie posolone wychodzi źle i przez to nie mogę się zalogować ponownie do panelu - muszę zmieniać hasło ręcznie w PhpMyAdmin. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 103 Pomógł: 17 Dołączył: 15.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
Zapis do bazy jest poprawny?
przypisujesz każdemu userowi to samo id (w postaci stringu) i nowe hasło. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 14.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Zapis do bazy jest poprawny?
przypisujesz każdemu userowi to samo id (w postaci stringu) i nowe hasło. Tak jest poprawny. Jeżeli wywalę sprawdzanie starego hasła i zostanie tylko ustawienie nowego to wszystko dobrze się zmienia w bazie. Problem jest ze sprawdzaniem nowego + jego soleniem. Id jest pobierane z adresu, a przed wejściem na stronę zmiany hasła zostaje pobrane id z bazy danych. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 103 Pomógł: 17 Dołączył: 15.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
no skoro jesteś pewien, że ten zapis jest ok:
i nic nie da jak zamienisz na ten kod: |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 14.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
no skoro jesteś pewien, że ten zapis jest ok: i nic nie da jak zamienisz na ten kod: Okej, zgadzam się, twoje zapytanie jest poprawne. Ale moje działało i myślałem że jest dobrze, a ja dopiero zaczynam. Dostajesz pomógł ![]() No ale czemu nowe hasło źle się soli i potem nie można się zalogować? |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 103 Pomógł: 17 Dołączył: 15.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
soli się dobrze ale robisz coś niedobrego z id w tabelce users, id to pewnie primary key więc to zapytanie robi mniej więcej taki błąd (mysql)
chcesz nadać wszystkim id tą samą liczbę, a nie wolno. http://www.w3schools.com/sql/sql_primarykey.asp#gsc.tab=0 Ten post edytował ssstrz 2.04.2013, 12:29:20 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 9 Dołączył: 30.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Moze nie poprawnie zapisujesz? Tzn. moze haslo wygenerowane przez Ciebie nie ma takiego samego algorytmu sprawdzania jak haslo uzywane do logowania?
-------------------- Pomoglem? Daj pomogl!
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 14.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Moze nie poprawnie zapisujesz? Tzn. moze haslo wygenerowane przez Ciebie nie ma takiego samego algorytmu sprawdzania jak haslo uzywane do logowania? Raczej nie, wszystko jest chyba dobrze użyte. Sprawdzałem plik logowania i tworzenia użytkownika i wykorzystywałem tamte funkcje. Jak napisałem skrypt z podaniem tylko nowego hasła bez sprawdzania starego wszystko dobrze się zmienia. A oto ten skrypt:
A to skrypt z sprawdzaniem starego hasła i jeżeli ono się zgadza to zmienia na nowe - no i tu jest problem bo zapisuje jakoś inaczej zakodowane hasło (nie wiem czemu). Oto kod:
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
W pierwszym skrypcie zapisujesz hasło ze zmiennej której nie ma?
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 14.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
To od początku, co zawiera $pass i $newpass jak potraktujesz je var_dump()? Są takie same?
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 14.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
To od początku, co zawiera $pass i $newpass jak potraktujesz je var_dump()? Są takie same? Stare hasło "jakub" Nowe hasło "jakub12345" oto wyniki: string(32) "c0ed90994f83f030a847e90e21903b6f" string(32) "c7769ba163acebdf13ab5a232ab73a6a" Niestety, jeżeli chcę się zalogować poprzez hasło "jakub12345" nie mogę, ponieważ niby podałem złe hasło. |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat c7769ba163acebdf13ab5a232ab73a6a I to jest w bazie, w tabeli pass Twojego ID? Po zmianie? Może coś przy logowaniu jest nie tak? -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 14.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
I to jest w bazie, w tabeli pass Twojego ID? Po zmianie? Może coś przy logowaniu jest nie tak? Tak, w bazie jest takie samo. W takim razie proszę, oto skrypt logowania:
Zaznaczam że dopiero raczkuje w PHP. |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Po co Ci ta funkcja, jak i tak hash leci do bazy? -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 14.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Po co Ci ta funkcja, jak i tak hash leci do bazy? A właśnie nie wiem. Ale po dodaniu pod ta linijką takiego czegoś: $newpass = mysql_real_escape_string($_POST['newpass']); Wszystko działa prawidłowo. A teraz jeszcze jedno pytanie, jak zabezpieczyć ten skrypt aby po zalogowaniu nie można było zmieniać hasła innym użytkownikom? Chodzi o to że gdy jest np. index.php?id=10 i zmienię na index.php?id=5 to mogę mu normalnie zmienić hasło, a chciałbym temu zapobiec. Jak zrobić żebym mógł używać tylko swojego id, a do wszystkich innym zabroniony dostęp? Np. Id 5 nie jest twoje, nie możesz mu zmienić hasła. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:53 |