Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Controllo di registrazione utente con ajax poco efficace

    Salve, devo controllare se un utente è loggato o meno e in tal caso riportarlo nella pagina di login (caso classico!), solo che devo farlo così: il controllo avviene tramite una chiamata ajax jsonp all'interno della funzione success (la chiamata ajax va in success sia che l'utente è loggato sia l'opposto), la chiamata deve essere fatta all'interno di una pagina a cui può accedere solo un utente registrato.
    Il problema è questo: per quanto io possa fare questa chiamata all'inizio della pagina questa verrà sempre caricata e poi, in caso di utente non loggato, reinderizzata alla pagina di login.
    In pratica se l'utente non è loggato viene comunque visualizzata la pagina anche per mezzo secondo.
    Io invece voglio che la chiamate sia bloccante ovvero che fino a quando all'interno della funzione success io non controllo che l'utente ha il permesso di accedere o viceversa, non venga visualizzato nulla.
    Ho provato a impostare async: false, ma non cambia molto.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non c'ho capito nulla, prova a fare un esempio
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Prendiamo Facebook per esempio. La bacheca è la pagina dell'utente loggato, la pagina di login dell'utente non loggato.
    Ora se andiamo su Facebook e non siamo loggati vediamo subito la pagina di login.
    Qui invece si vede prima la bacheca, poi siccome non siamo loggati appare la pagina di login, comportamento errato!
    Questo perchè nel frattempo che la chiamata ajax fa tutto il suo giro e fa i controlli la pagina si è caricata, per quanto possa essere fatta subito e possa essere veloce si vedrà sempre prima la bacheca e poi la pagina di login.
    Il problema è che io sta chiamata ajax la posso fare solo all'interno della pagina riservata all'utente loggato.

    PS: Facebook è un esempio non sto sviluppando nessun social!

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Nel pagina bacheca verifica lato server se l'utente è logato se lo è la mostri altrimenti reindirizzi al login come fanno tutti
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    La verifica la faccio in bacheca, ma prima che la verifica finisca e mi dica che l'utente non è loggato la bacheca viene caricata e visualizzata

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Se la verifica la fai lato server <?php if(!controllo_sessione_utente_logato){rindirizzo alla pagina di login}?> non lato client con ajx non visualizzi la pagina bacheca
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Si in effetti questa poteva essere un'informazione utile da fornire a cui non ho pensato, chiedo scusa!
    Niente PHP mi dispiace solo ajax!

  8. #8
    Mi sa che il problema del login è forviante perchè il vero problema è rendere la chiamata ajax jsonp sincrona, bloccante al caricamento della pagina, purtroppo però una chiamata jsonp non può essere sincrona.
    Una soluzione sarebbe utilizzare una pagina vuota di controllo che poi reindirizza alle pagine giuste, ma non posso usare questa soluzione, o meglio questa sarebbe la soluzione estrema.

  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Troppe limitazioni per i miei gusti, auguri.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  10. #10
    Troppe limitazioni per i miei gusti, auguri.
    Si sono d'accordo con te, ma non posso farci nulla.

    Cmq per ora ho risolto così: rendo la pagina che non si dovrebbe vedere bianca con hidden e se l'utente è loggato la rendo visibile. Una soluzione non bellissima ma per ora è l'unica che ho trovato. Se dovessi trovare una soluzione migliore la posterò.

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.