![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 27.11.2010 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o to ze pierwsza funkcja isset działa dobrze, a po kliknięciu drugiej zamiast wyświetlić echo, przechodzi na stronę pierwszej funkcji. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
brakuje średnika po echo.
Poza tym kod wyglądałby lepiej, gdybyś html'a nie wypisywał za pomocą echo, tylko zamykał i otwierał w odpowiednim miejscu bloki php. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 27.11.2010 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Problem w tym że piszę aplikacje pod ipb i muszę wszystko zwracać. Chodzi mi o działanie form, na inne błędy nie patrzcie. (IMG:style_emoticons/default/snitch.gif)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 183 Pomógł: 24 Dołączył: 4.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
to na co patrzeć/ pomyśl jak masz 'go' w POST to nie mozesz miec 'ee' - sprawdzasz jedno w drugim
|
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
To proste. Masz zagnieżdżone ee w go. Jeśli klikniesz go to pokaże się strona pierwsza ale spełniony będzie warunek go, więcpokaże także ee. Ale gdy klikniesz ee to strona się przeładuje znowu, ale warunek go nie będzie spełnony, więc ee się nie pokaże. Tak więc hi NIGDY się nie pokaże bo niemożliwe jest jednoczesne spełnienie by kliknięte były go i ee. Znaczy jest możliwe, ale opiera się o fałszowanie (właściwie preparowanie) danych wysyłanych do serwera z Twojego kompa. (IMG:style_emoticons/default/wink.gif) Sama przeglądarka nigdy tego nie zrobi. Jeśli chcesz by to zadziałało to musisz sprawdzanie czy jest ee wyrzucić poza nawias fragmentu gdzie sprawdzane jest go. Wtedy sprawdzanie będzie niezależne, a tym samym możliwe do zajścia.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Jak dodasz do drugiego formularza:
<input type="hidden" name="go" value="<?php echo $_POST['go']?>" /> to zadziała i wyświetli hi po drugim submicie. Za drugim razem nie wchodzi ci po prostu do bloku if(isset($_POST['go'])), bo nie przesyłasz tego parametru. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 27.11.2010 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To może zadam takie pytanie:
Czy w funkcji: if(isset($_POST['group'])) { if(isset($_POST['eh'])) {tu coś} } Mogę zrobić następną? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
if to nie funkcja tylko instrukcja warunkowa. Możesz je zagnieżdżać, ale zbyt duży stopień zagnieżdżenia, to nie jest coś, co powinno się robić.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 27.11.2010 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To mój kod skróciłem go trochę, objaśniłem w komentarzach. Z góry wielkie dzięki. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Bo, gdy klikasz test, to if(isset($_POST['lid'])) = false. Przesyłasz tylko $_POST['group'].
Z tego powodu nie wchodzi ci nawet do pierwszego bloku. Jak nie wiesz o co chodzi to dodaj na początku skryptu var_dump($_POST) powinno ci rozjaśnić sprawę. Dodaj do drugiego formularza pole: <input type="hidden" name="lid" value="it_doesnt_matter_what_is_in_here" /> i zadziała. |
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A ja i kilka osób oprócz mnie Ci piszemy po raz kolejny... Zagnieździłeś za bardzo.
Klikając Test wysyłasz formularz, w którym masz TYLKO input o name = "group" a więc $_POST['lid'] NIE ISTNIEJE a więc ZAPOMNIJ że value kiedykolwiek się ustawi bo ani lid ani groupType tym bardziej nie istnieją a więc if je sprawdzający NIGDY nie będzie spełniony i dlatego nie wychodzi Ci to co chcesz. I Ty się dziwisz, że nie działa Ci? Kompletnie nie rozumiesz logiki działania swojego skryptu i przepływu danych w nim. Na samym początku skryptu zrób sobie a sam zobaczysz, że masz kompletnie rozwalone dane przesyłane formularzem i niezgodne z tym co myślałeś, że nim idzie. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 27.11.2010 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Bo, gdy klikasz test, to if(isset($_POST['lid'])) = false. Przesyłasz tylko $_POST['group']. Z tego powodu nie wchodzi ci nawet do pierwszego bloku. Jak nie wiesz o co chodzi to dodaj na początku skryptu var_dump($_POST) powinno ci rozjaśnić sprawę. Dodaj do drugiego formularza pole: <input type="hidden" name="lid" value="it_doesnt_matter_what_is_in_here" /> i zadziała. Zrobiłem tak lecz dalej przenosi do tej pierwszej instrukcji warunkowej. A ja i kilka osób oprócz mnie Ci piszemy po raz kolejny... Zagnieździłeś za bardzo. Klikając Test wysyłasz formularz, w którym masz TYLKO input o name = "group" a więc $_POST['lid'] NIE ISTNIEJE a więc ZAPOMNIJ że value kiedykolwiek się ustawi bo ani lid ani groupType tym bardziej nie istnieją a więc if je sprawdzający NIGDY nie będzie spełniony i dlatego nie wychodzi Ci to co chcesz. I Ty się dziwisz, że nie działa Ci? Kompletnie nie rozumiesz logiki działania swojego skryptu i przepływu danych w nim. Na samym początku skryptu zrób sobie a sam zobaczysz, że masz kompletnie rozwalone dane przesyłane formularzem i niezgodne z tym co myślałeś, że nim idzie. W 1 przepływ danym jest okej, świadczy o tym np. to że działają wszystkie zapytania, etc. Zaś w drugim nie ma żadnego przepływu danych, gdyż ma on mnie kierować do funkcji która mi coś wyświetli, a kieruje mnie do rozpoczęcia. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 07:48 |