![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 1 Dołączył: 16.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Nie wiedziałem za bardzo w którym dziale napisać ten temat, przepraszam za ewentualny kłopot. Na stronie chciałbym zrobić logowanie przy pomocy AJAX. Z samym logowaniem problemu nie ma. Problem zaczyna się, gdy użytkownik ma wyłączoną obsługę JavaScript - albowiem uniemożliwia to logowanie. Pozostawiam więc Ajaxa jak i cały JS tylko w celu zachowania na stronie dynamiki i ewentualnie dodatkowych 'efektów graficznych' interfejsu (jQueru) użytkownikom, którzy mają włączone JS. Cała reszta będzie się mogła obejść i bez tego. Została sama kwestia logowania w sposób dynamiczny czy też nie. Pierwsze co wpadło mi do głowy, to: - do formularza, z którego będzie logował się użytkownik, dodać niewidoczne pole typu hidden z domyślną wartością "noajax".
- w skrypcie js, dodać do danych POST zmienną "action" z wartościa "ajax"
Działanie jest proste - wprzypadku braku js, zmienna action wyśle się jako "noajax". W przeciwnym wypadku zmienna ta zostanie zastąpiona przy pomocy JS na wartość "ajax". Jestem świadomy możliwości manipulacji polem action w formularzu i doprowadzenia do "rzekomego" dynamicznego logowania. W ten sposób, mogę sprawdzić w skrypcie PHP, jakim sposobem wysłano formularz. Pytanie mam następujące: czy takie rozwiązanie jest bezpieczne i jakie jest na to bardziej profesjonalne rozwiązanie? Ten post edytował Mephis 13.11.2014, 08:03:24 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
A na co ? Przecież dynamicznie i statycznie odwołujesz się do tego samego skryptu logowania.
Jak robisz ajaxem to robisz zapewne preventDefault, potem obsługa, pierdoły, animacje itp. Jak robisz ręcznie wciskasz "Loguj" i tyle. A w PHP sprawdzasz czy przyszedł AJAX:
i robisz albo redirect albo die; |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 1 Dołączył: 16.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
Owszem, skrypt logowanie jest ten sam. W nim stawiam warunek czy $_POST['action'] jest "ajax" lub "noajax". W przypadku ajax, ze skryptu logowania wypuszczam dane przez "echo json_encode($dane);", zaś w przypadku noajax, muszę zainicjować komunikat o ewentualnym błędzie i zrobić przekierowanie do strony z logowaniem.
Z tego co rozumiem, ten warunek mam wstawić zamiast sprawdzenia czy 'action' jest 'ajax' i żadne 'action' nie jest mi już potrzebne? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
dokładnie tak
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 10:31 |