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 (IMG:style_emoticons/default/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ć (IMG:style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 20:33