![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 733 Pomógł: 4 Dołączył: 11.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich forumowiczów
![]() Postanowiłem napisać sobie skrypt zmiany hasła dla użytkownika, ale mam problem. Robię to w dwóch etapach. Najpierw użytkownik podaje login, email oraz teraźniejsze hasło. Skrypt ma w tym momencie za zadanie sprawdzić czy takie dane istnieją w bazie. Jak na razie problem polega na tym: podaje prawidłowo wszystkie dane,a skrypt wyrzuca komunikat: Kod Podane hasło jest nieprawidłowe Podany email jest nie prawidłowy Ale pomimo tych komunikatów przechodzi do kolejnego kroku czyli zmiany hasła. Nie mam pojęcie co jest nie tak dlatego tutaj pisze. Proszę o pomoc. Z góry dziękuje ![]() Pozdrawiam, adrianozo ![]() zmien_haslo.php
-------------------- |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 652 Pomógł: 47 Dołączył: 6.02.2010 Skąd: Radom Ostrzeżenie: (0%) ![]() ![]() |
Jednym słowem burdel w kodzie, na początku mogłeś posprawdzać ifem itp i później formularz dać w echo jakieś?
A ten błąd(czy jak to nazwać) masz bo źle ułożyłeś instrukcje. Możesz exitem przerwać ale tego sie nie stosuje , poprostu ułóż dobrze ifa. Później przejże ten kod dokładnie. Ten post edytował gigzorr 28.05.2010, 17:05:22 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 733 Pomógł: 4 Dołączył: 11.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Chyba muszę się za to zabrać od początku tylko nie mam pomysłu
![]() -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
O coś takiego dla haseł to niepotrzebne męczenie serwera:
Pierwsze sha1 przecież usunie z tego niebezpieczne znaki. Reszta przed jest całkowicie niepotrzebna. Rozpisz to sobie na kartce, na jakimś prostym schemacie blokowym krok po kroku co ma się dziać. Generalnie masz niewiele kroków 1. Wyświetlanie formularza 2. Validacja formularza po przesłaniu 3. Odpytanie bazy danych czy podane dane są ok 4. W zależności od wyniku albo aktualizacja danych, albo wyświetlenie komunikatu Napisz na pozątku podstawowe bloki if/else, potem dopiero uzupełniaj je kodem, może tak będzie łatwiej. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 733 Pomógł: 4 Dołączył: 11.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Na razie zrobiłem bez sprawdzania błędów i pokazuje mi, że zostało zmienione a tak na prawdę to skrypt mi usuwa wszystko z kolumny haslo
zmien_haslo.php
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Rób wcięcia w kodzie, będzie łatwiej.
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 733 Pomógł: 4 Dołączył: 11.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Po wcięciach. Nie wiem czy coś zmieniłem(raczej nie) ale teraz skrypt nie zmienia hasła nawet nie usuwa
![]() zmien_haslo.php
-------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
to się tak nie da, że wklejasz skrypt na 100 linijek a my zgadujemy co w nim nie gra, bo tutaj bardzo dużo rzeczy może być nie tak, zwłaszcza, że masz bardzo chaotyczny styl pisania
Po pierwsze musisz ustalić w, którym miejscu skrypt przestaje działać: 1. przykładowo: w linijce 11 daj <!--Geshi:208595:php--><pre class="php-brief" style="font-family:monospace;"><div class="head"> , żeby zobaczyć czy skrypt tam dochodzi 2. skoro jesteś początkujący to ZAWSZE używaj or die(mysql_error()) po mysql_query(), żeby sprawdzić czy tam nie ma błędów, czyli: 3. ZAWSZE po zapytaniu dawaj , żeby zobaczyć jakie zapytanie jest konstruowane i czy w ogóle zmienne są do niego przekazywane(jak już skrypt będzie działał to sobie to pousuwasz ale stosuj to bo każdy Twój wątek na forum to są praktycznie te same błędy) 4. na samym początku możesz też dać echo $_POST;, żeby zobaczyć jakie zmienne sobie przekazujesz, bo może w którymś wyrażeniu warunkowym sprawdzasz czy istnieje zmienna której wcale nie ma. Stosując te 4 wskazówki powinieneś sam zlokalizować miejsce błędu i to poprawić, oczywiście po doprowadzeniu skryptu do działania trzeba to pousuwać ale to takie praktyki na czas tworzenia. Ten post edytował tehaha 29.05.2010, 13:07:40 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 733 Pomógł: 4 Dołączył: 11.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
echo zapytanie1; wyświetla:
UPDATE `admin` SET `haslo`= "" WHERE `loginek`="" czyli nie wie co zaktualizować i na co. -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
no to już coś wiadomo daj echo "a"; w linijce 11 tak jak pisałem żeby zobaczyć czy dochodzi do przypisania danych do zmiennych
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 733 Pomógł: 4 Dołączył: 11.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wyświetla literkę
-------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
no a przesyłasz zmienne do tego skryptu? przecież jeżeli chcesz zmienić hasło to trzeba przesłać zmienne login i hasło?
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 733 Pomógł: 4 Dołączył: 11.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Przesyłam w name w formularzu
-------------------- |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
odpal to i napisz co przesyła:
najlepiej gdybyś oddzielił formularze od skryptu wykonawczego bo tak masz za duży burdel w tym i nie wiadomo co tu się dzieje |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 733 Pomógł: 4 Dołączył: 11.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Na początku przesyła array
Po wpisaniu danych w pierwszy formularz: Array tak, zmienne są przypisywane nansss 0144712dd81be0c3d9724f5e56ce6685 Po wpisaniu w drugi formularz: Array zapytanie; UPDATE `admin` SET `haslo`= "" WHERE `loginek`="" Hasło zostało zmienione. -------------------- |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
ok to teraz rozumiem, formularz jest dwu etapowy, i w drugim etapie nie ma zmiennych bo ich nigdzie nie zapisałeś, możesz to rozwiązać na dwa sposoby:
1. przechować je w polu input hidden 2. przechować je w zmiennych sesyjnych prostszy dla Ciebie chyba będzie ten pierwszy sposób: czyli w drugim formularzu dorzuć:
a przed zapytaniem $zapytanie1: a i źle Ci powiedziałem miało być print_r($_POST) zamiast echo $_POST |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 733 Pomógł: 4 Dołączył: 11.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
No tak... Kurde hidden. Zapomniałem o tym kompletnie. Dziękuje
![]() Ok teraz pasowałoby dać warunki i znów mam z tym problem. Nie bardzo wiem, gdzie je wrzucić. Osobne muszą być do pierwszego formularza i osobne do drugiego.
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 10:00 |