Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][AJAX]Odwołanie się do innego pliku poprzez AJAX i automatyczne wylogowanie, Zmiana hasła poprzez Ajax i automatyczne wylogowanie.
casperii
post
Post #1





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

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


Witam, czy da się zrobić coś na zasadzie, że następuje wylogowanie się jeżeli zmienię hasło.
Na chwilę obecną mam aktualizowanie hasła poprzez Ajax. Myślałem żeby niszczyć sesje "session_destroy()" ale to nic nie daje.
Może coś w kodzie AJAX jeśli jest success ?
Go to the top of the page
+Quote Post
Star
post
Post #2





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


Jestem raczej początkującym "programistą" jestli chodzi o AJAX ,ale jesli odbierasz dane zwrocone przez serwer to mysle ze mozesz tak pokierować kodem ,że nastąpiło by wylogowanie. Ciężko cos powiedzieć bez kodu smile.gif
Go to the top of the page
+Quote Post
tzm
post
Post #3





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

Ostrzeżenie: (10%)
X----


If success redirect to /logout
Go to the top of the page
+Quote Post
casperii
post
Post #4





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

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


Dzięki za pomoc, ale byłbym wdzięczny jakbyś mi jeszcze podpowiedział bo AJAX mam rozbity na 4 ID w submitach:

$('#UpdateDataPersonal, #UpdateDataPhone, #UpdateDataNotice, #UpdatePass').submit(function(){
...
...
...
...
$.ajax({
type: "POST",
...
...
},
success: function(data){

...
}

No i teraz chcę by tylko mi wylogowało jeśli ID forma było UpdatePass bo po co ma mi cały czas wylogować smile.gif
Go to the top of the page
+Quote Post
Comandeer
post
Post #5





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


Rozumiem, że zrobiłeś sobie taki uniwersalny catcher dla formularzy?

W takim razie wystarczy wewnątrz $.fn.submit sprawdzić czy aktualny formularz (this) ma odpowiednie [id]. Coś takiego powinno styknąć:
Kod
var form = this;
[…]
$.ajax({
    success: function()
    {
        if(form.id === 'takiJakiChcesz')
            redirect();
    }
});



--------------------
Go to the top of the page
+Quote Post
casperii
post
Post #6





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

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


Coś chyba nie działa zobacz:

  1. $(document).ready(function(){
  2. $('#UpdateDataPersonal, #UpdateDataPhone, #UpdateDataNotice, #UpdatePass').submit(function(){
  3. var form = $(this),
  4. formData = form.serialize(),
  5. formUrl = form.attr('action'),
  6. formMethod = form.attr('method'),
  7. responseMsg = $('#info_upd_data');
  8. responseMsg.hide()
  9. .addClass('response-waiting')
  10. .text('proszę czekać...')
  11. .fadeIn(200);
  12. //alert("Data: " + formData);
  13.  
  14. $.ajax({
  15. type: "POST",
  16. //type: formMethod,
  17. url: "/ajax/AjaxUpdateData.php",
  18. data: formData,
  19. processData: false,
  20. //contentType: false,
  21.  
  22. error: function(jqXHR, textStatus, errorMessage){//
  23. console.log(errorMessage);//
  24. },//
  25.  
  26. success: function(data){
  27. var responseData = jQuery.parseJSON(data),
  28. klass = '';
  29. switch(responseData.status){
  30. case 'error':
  31. klass = 'response-error';
  32. break;
  33. case 'success':
  34. klass = 'response-success';
  35. $('#loadName').fadeOut();
  36. $('#loadName').text($('input[name="imie"]').val()+' '+$('input[name="nazwisko"]').val());
  37. $('#loadName').fadeIn()
  38.  
  39. $('#loadSex').fadeOut();
  40.  
  41. if($('input[name="sex"]:checked').val() == 'm'){
  42. $("#loadSex").html('mężczyzna');
  43. $("#loadAvatar").removeClass();
  44. $("#loadAvatar").addClass('avatarm');
  45. }
  46.  
  47. else if($('input[name="sex"]:checked').val() == "f") {
  48. $("#loadSex").html('kobieta');
  49. $("#loadAvatar").removeClass();
  50. $("#loadAvatar").addClass('avatarw');
  51. }
  52.  
  53. $('#loadSex').fadeIn();
  54. if(form.id === 'UpdatePass'){
  55. alert('ok');
  56. }
  57. break;
  58. }
  59.  
  60.  
  61. responseMsg.fadeOut(200,function(){
  62. $(this).removeClass('response-waiting')
  63. .addClass(klass)
  64. .text(responseData.message)
  65. .fadeIn(200,function(){
  66. setTimeout(function(){
  67. responseMsg.fadeOut(200,function(){
  68. $(this).removeClass(klass);
  69. });
  70. },3000);
  71. });
  72. });
  73. console.log(data)//
  74. }
  75. });
  76. return false;
  77. });
  78. });
  79. //end update


  1. <form id="UpdateDataNotice" method="POST">
  2. jakieś tam pola
  3. </form>
  4.  
  5. <form id="UpdatePass" method="POST">
  6. jakieś tam pola
  7. </form>


Nie wykonuje się alert dla UpdatePass. Hasło się aktualizuje w bazie.

Ten post edytował casperii 17.05.2015, 18:23:12
Go to the top of the page
+Quote Post
Comandeer
post
Post #7





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


A zrób se alert(form.id) i zobacz co zwraca. Tak na chłopski rozum winno działać


--------------------
Go to the top of the page
+Quote Post
casperii
post
Post #8





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

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


Cytat(Comandeer @ 17.05.2015, 19:28:16 ) *
A zrób se alert(form.id) i zobacz co zwraca. Tak na chłopski rozum winno działać



if(form.id === 'UpdatePass'){
alert(form.id);
}

Nie pokazuje nic.

samo alert(form.id); zwraca undefined.
Go to the top of the page
+Quote Post
Comandeer
post
Post #9





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


Heh, zapędziłem się - w końcu to jQuery, nie czysty JS
Kod
if(form.attr('id') === 'UpdatePass')

powinno już działać


--------------------
Go to the top of the page
+Quote Post
casperii
post
Post #10





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

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


Cytat(Comandeer @ 17.05.2015, 20:09:13 ) *
Heh, zapędziłem się - w końcu to jQuery, nie czysty JS
Kod
if(form.attr('id') === 'UpdatePass')

powinno już działać


Super! Działa jak należy:-)

  1. if(form.attr('id') === 'UpdatePass'){
  2. setTimeout(function() {
  3. window.location.href = "/wyloguj.html";
  4. }, 2000);
  5. }
Go to the top of the page
+Quote Post

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 Aktualny czas: 19.08.2025 - 06:55