Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> [PHP]AJAX logowanie, pomoc w zabezpieczeniu kodu
casperii
post 11.10.2018, 19:28:30
Post #21





Grupa: Zarejestrowani
Postów: 680
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


@nospor SignIn poprawiony na signIn smile.gif

to:
  1.  
  2. if(responseData.status == 'error'){
  3. setTimeout(function(){
  4. responseMsg.fadeOut(200,function(){
  5. $(this).removeClass(klass);
  6. });
  7. },3000);
  8.  
  9. }


nie powoduje opóźnienia wyświetlenia błędu tylko usunięcie klasy z informacją o błędzie.
podobnie jest z chwilą success - wyświetlam informację o poprawnym zalogowaniu i przeładowuje stronę.

klass gdy zmienię na class to wywala błąd smile.gif
Go to the top of the page
+Quote Post
nospor
post 11.10.2018, 19:51:09
Post #22





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




To nazwij to np. messageClass tylko na jadro linuksa nie spolszaczaj tego w ten sposob tongue.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
casperii
post 14.10.2018, 20:06:22
Post #23





Grupa: Zarejestrowani
Postów: 680
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


@viking fail() / done() jest w nowszej wersji jQuery , nie chce teraz ruszać strony by się nie posypała smile.gif
@nospor usunąłem switcha i (c/k)lass smile.gif

czy teraz wygląda Panowie kod optymalnie , nie czepiając się oczywiście nowego jQuery.

obecny JS wygląda tak:
  1. var signIn = function() {
  2. $('#LoginButton,#LoginButtonTop').on('click', function (){
  3. var form = $('#login').serialize(),
  4. responseMsg = $('#messageLogin,#messageLoginTop');
  5. responseMsg.hide().addClass('response-waiting').text('czekaj...').fadeIn(200);
  6.  
  7. $.ajax({
  8. type: 'GET',
  9. url: "/ajax.php?p=login",
  10. data: form,
  11. dataType: 'json',
  12.  
  13. success: function(data, textStatus, jQxhr) {
  14. responseMsg.fadeOut(200,function(){
  15. $(this).removeClass('response-waiting').addClass('response-success').html(data.message).fadeIn(200,function(){
  16. var url4 = window.location.href;
  17. setTimeout(function() {
  18. window.location.reload(url4);
  19. location.reload(true);
  20. }, 1000); /*automatyczne odświeżenie strony */
  21. });
  22. });
  23. },
  24. complete: function() {
  25. //ten fragment wykona się po zakończeniu łączenia - nie ważne czy wystąpił błąd, czy sukces
  26. },
  27. error: function(jqXHR, errorText, errorThrown) {
  28. console.log( errorThrown );
  29.  
  30. responseMsg.fadeOut(200,function(){
  31. $(this).removeClass('response-waiting').addClass('response-error').html(jqXHR.responseJSON.message).fadeIn(200,function(){
  32.  
  33. setTimeout(function(){
  34. responseMsg.fadeOut(200,function(){
  35. $(this).removeClass('response-error');
  36. });
  37. },3000);
  38. });
  39. });
  40.  
  41.  
  42. }
  43. });
  44. return false;
  45. });
  46. }


Panowie jeśli treść do jQuery z php wysyłam w ten sposób:
  1. echo json_encode(['message' => 'wiadomość przekaż']);
  2. return;


to jak powinno wyglądać poprawnie w samym jQuery odebranie tego i wstawienie do diva ?

  1. .fail(function(jqXHR, errorText, errorThrown) {
  2. console.log( errorThrown );
  3. $(this).html(jqXHR.responseJSON.message);
  4. });
  5. return false;


niby dla powyższego działa, ale wydaje mi się, że nie jest to poprawnie, ponieważ w przypadku gdy wykona się done() to wówczas wywala bład z message
No i jak powinno zostać przekazane info z php do diva w przypadku done ?

Ten post edytował casperii 14.10.2018, 20:07:53
Go to the top of the page
+Quote Post

2 Stron V  < 1 2
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 17:37