![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 16.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
mam taki skrypt. Obsługuje formularz aktywacji konta gdzie użytkownik podaje następujące dane: adres mailowy, hasło, kod zabezpieczający z maila. I teraz tak. po aktywacji ma się wykonać ten fragment kodu i pokazać stosowna informacja.
Aktywacja jedynie wtedy kiedy wszystkie podane dane się zgadzają. W przeciwnym razie:
Niestety nie dział to do końca. Sprawdzałem trzy warianty: 1. Zły mail, reszta ok 2. Złe hasło, reszta ok 3. Zły kod, reszta ok O ile w pierwszych dwóch przypadkach jest dobrze - podaje błąd i nie ma aktywacji (kolumna kod nie zmienia się na "1" w bazie) o tyle w przypadku 3 dostaję komunikat, że weryfikacja się udała, a konto zostało aktywowane. Mail dochodzi, jednak w bazie nic się nie zmienia konto nadal jest nieaktywne. Jeżeli wprowadzę wszystkie dane poprawnie otrzymuję o co chcę, stosowny komunikat i zmianę "flagi" na 1. Gdzie tkwi problem, ze kod wykonuje się jakby "częściowo"? Podejrzewam, ze chodzi o coś z tym:
Jakby nie wykonywało wszystkich ANDów. Poniżej pełny kod tego pliku - może ktoś wyłapie błąd.
Wybaczcie jakoś samego kodu itd, nie jestem w tym aż tak biegły a samouczenie jest chyba najlepsza metodą . Mam nadzieję, że coś da się z tym zrobić ![]() Ten post edytował arlid 30.07.2015, 18:27:37 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 33 Dołączył: 8.09.2014 Ostrzeżenie: (0%) ![]() ![]() |
w ifie masz zapytanie bez sprawdzania zgodnosci kodu:
dlatego wystarczy podac dobry email i hasło, aby wejść dalej. Następnie masz:
updatujesz tylko ten wiersz, gdzie zadza się hasło email i kod. W tym momencie, pomimo, że mamy poprawny email i hasło to zapytanie się nie wykona, podając zły kod. to zapytanie z ifa zmień na to:
Ten post edytował borabora 30.07.2015, 20:44:42 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 6.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
ten IF zawsze Ci zwróci true, bo zapytanie wykonuje się bez błędów logicznych. proponuję coś takiego
to Ci sprawdzi ilość 'zaktualizowanych wierszy' mysqli affected_rows |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 16.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
borabora, logicznie biorąc faktycznie i dlatego mam komunikat, iż się powiodło a mimo tego nie updateuje mi odpowiednio kolumny co już jest ok.
wasyllinio, jak dobrze myślę to chodzi o co, że w przypadku jak jak zrobiłem kod wykona się wtedy kiedy zapytanie zostanie wykonane, a w Twoim dodatkowo sprawdzi czy jakikolwiek wiersz się zaktualizował (co potwierdzi fakt, ze kolumna się zmieniła). Dzięki za pomoc. Zaraz będę to poprawiał ![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) ![]() ![]() |
Wywal kolego te małpy z kodu bo za chwilę wrócisz z płaczem że coś nie trybi. A struktura powinna być w ten deseń - jeśli dane z formularza przesłane to uruchom zapytanie do bd. A jeszcze lepiej jak przesiądziesz się na PDO.
-------------------- TERA TRYBI.pl
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.06.2025 - 07:30 |