Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32
  1. #1

    Ajax - controllare se una sessione e' ancora attiva prima di eseguire un' azione in php

    Buonasera
    ritorno con il mio quesito in merito alle chiamate asincrone con AJAX :
    Allora da una pagina php dove ho una sessione impostata devo inserisco dei dati in un db via ajax; mettiamo caso che la sessione sia scaduta; procedo con l'inserimento dei dati, premo "inserisci", ma essendo la sessione scaduta dovrebbe farmi un redirect alla pagina di login.

    Il problema � che la pagina di login viene caricata nel DIV contenente il risultato della chiamata AJAX.

    Ora dovrei fare un controllo SE la sessione � ancora attiva alla pagina di inserimento dei dati ma non riesco a capire come fare! forse utilizzando il metodo BEFORESEND di AJAX c'� modo di verificare se la sessione � attiva?qualcuno mi pu� aiutare?


    grazie

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Se usi jquery e cambia handler leggi qui
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    grazie della risposta, ma potresti essere più specifico e preciso?

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Quote Originariamente inviata da manuel81pd Visualizza il messaggio
    grazie della risposta, ma potresti essere più specifico e preciso?
    No, non conoscendo progetto e sviluppo e la gestione del callback può essere divrerso
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    No, non conoscendo progetto e sviluppo e la gestione del callback può essere divrerso
    <script type="text/javascript">
    $(document).on("submit", "form", function(event){

    event.preventDefault();
    $('#ShowData').html('<img src="img/loader.gif" height="16" width="16"/>');

    $.ajax({
    url: 'ins_ok.php',
    type: 'POST',
    data: new FormData(this),
    processData: false,
    contentType: false,
    beforeSend: function(XMLHttpRequest, textStatus, errorThrown){
    alert(XMLHttpRequest.status);

    },
    success: function (data, status)
    {
    $('#ShowData').html(data);
    $('#Ins')[0].reset();
    $('#Data').datepicker('update', '');

    },
    error: function (xhr, desc, err)
    {
    alert('Dati al momento non disponibili. Riprovare più tardi.');
    console.warn(xhr.responseText);
    alert(xhr.status);
    alert(err);
    }
    });
    });
    </script>

    Prima che venga eseguito questo codice, devo controllare se la sessione è ancora attiva, altrimenti il div #ShowData si riempie con la pagina di login

  6. #6
    Guest
    Registrato dal
    Jun 2012
    residenza
    Espoo, Finland
    Messaggi
    286
    Log out significa che la richiesta AJAX risultera' in un 401 Not Authorized. Puoi semplicemente controllare lo status code della richiesta con xhr.status e se e' 401 fai redirect alla login page altrimenti fai la solita roba.

  7. #7
    Quote Originariamente inviata da Little Hawk Visualizza il messaggio
    Log out significa che la richiesta AJAX risultera' in un 401 Not Authorized. Puoi semplicemente controllare lo status code della richiesta con xhr.status e se e' 401 fai redirect alla login page altrimenti fai la solita roba.

    Ottimo, solo che una volta avviata la richiesta , la pagina mi riporta codice 200.
    quindi, per piacere, riusciresti a dirmi dove devo mettere il controllo che intendi e il codice da scrivere? Scusa ma di ajax e Java non so moltissimo!

  8. #8
    Guest
    Registrato dal
    Jun 2012
    residenza
    Espoo, Finland
    Messaggi
    286
    Se ricevi uno status code diverso da 401 quando la sessione e' gia' scaduta/sei logged out, bisognerebbe controllare la parte server side perche' non e' normale che lo status code sia 200 se tenti di accedere ad una risorsa protetta senza autenticazione.

  9. #9
    Quote Originariamente inviata da Little Hawk Visualizza il messaggio
    Se ricevi uno status code diverso da 401 quando la sessione e' gia' scaduta/sei logged out, bisognerebbe controllare la parte server side perche' non e' normale che lo status code sia 200 se tenti di accedere ad una risorsa protetta senza autenticazione.
    Ti rispondo cos� : via Ajax accedo alla pagina, viene fatto il controllo via PHP se la sessione � attiva, non essendo la sessione attiva richiama la pagina di login; solo che la richiama dentro il div come risposta alla chiamata Ajax! Ma � logico e ci sta ed � il problema che ho !

    Detto questo, mi potete aiutare a controllare se la sessione � attiva prima della chiamata Ajax ? Pervpiacere? Non mi servono congetture solo come si scrive il codice tutto qua!


    grazie!

  10. #10
    Guest
    Registrato dal
    Jun 2012
    residenza
    Espoo, Finland
    Messaggi
    286
    Quote Originariamente inviata da manuel81pd Visualizza il messaggio
    Ti rispondo cos� : via Ajax accedo alla pagina, viene fatto il controllo via PHP se la sessione � attiva, non essendo la sessione attiva richiama la pagina di login; solo che la richiama dentro il div come risposta alla chiamata Ajax! Ma � logico e ci sta ed � il problema che ho !

    Detto questo, mi potete aiutare a controllare se la sessione � attiva prima della chiamata Ajax ?
    Normalmente questo genere di cose si gestisce nel modo che ti ho gia' suggerito, cioe' controllando lo status code del response dell'AJAX request e se questo e' 401 fare redirect, con JavaScript, alla pagina di login. Con questo si assume che la pagina server side che risponde alla AJAX request non faccia nessun redirect se la sessione e' scaduta e ritorni semplicemente un 401. Questa e' la normale procedura per questo genere di cose.


    Non mi servono congetture solo come si scrive il codice tutto qua!
    Io sto provando ad aiutarti ma se le mie "congetture" non ti vanno bene allora aspetta che risponda qualcun altro.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.