2014-10-02 15 views
5

Ho una pagina di accesso che non sarà accessibile se l'utente ha già effettuato l'accesso. Quindi, la pagina di accesso tenta di reindirizzare gli utenti registrati nella pagina da cui provengono.come può una pagina reindirizzare gli utenti alla pagina precedente se provano ad accedere alla pagina tramite url?

Reindirizzare funziona se gli utenti fanno clic su un collegamento per accedere a una pagina. Il problema è che se gli utenti si trovano nella pagina About prova ad accedere alla pagina di accesso tramite url, quindi lo referrer agent non verrà impostato in modo tale che la pagina di accesso non reindirizzerà gli utenti alla pagina About, invece sta reindirizzando allo base url (sto usando il codeign e libreria di autenticazione ion). codice di reindirizzamento di pagina di login come di seguito:

if($this->ion_auth->logged_in()) 
{ 
    redirect($this->agent->referrer(), 'refresh'); 
} 

E 'possibile eseguire questo codice e reindirizzare correttamente invece di sempre reindirizzamento a URL di base? Quando gli utenti hanno effettuato l'accesso non visualizzo il link della pagina di accesso. Quindi gli utenti che hanno effettuato l'accesso possono accedere alla pagina di accesso solo digitando url e ciò che voglio è che, se lo fanno, verranno reindirizzati alla pagina da dove provengono.

risposta

0

Non so se c'è un modo migliore, ma faccio sempre questo:

Quando l'utente si trova sulla pagina Informazioni e clicca sul login, prendere la pagina about indirizzo URL, fare forse base64_encode su di esso e quindi inviarlo alla pagina di accesso tramite GET come parametro. Nella pagina di accesso, se le credenziali sono valide, prendi quel parametro da GET, base64_decode e reindirizza lì.

se si sta facendo che solo per le pagine principali, si può ottenere solo il controller dal URL, ma se si desidera applicare in ogni pagina (/controller/method/var1/var2) poi prendere l'intero URL o tutta la base URL URL meno.

Fammi sapere se questo suggerimento ha aiutato.

8

Nella pagina che si desidera tornare a che si può fare:

$this->session->set_userdata('referred_from', current_url()); 

quindi reindirizzare torna a quella pagina

$referred_from = $this->session->userdata('referred_from'); 
redirect($referred_from, 'refresh'); 
4

Prova questo:

$this->load->library('user_agent'); redirect($this->agent->referrer());

altro

Utilizzare SESSION per il login e il logout. se la sessione esiste, bloccare la pagina di accesso, altrimenti consentire la pagina di accesso utilizzando la dichiarazione if.

1

Sto facendo in questo modo.

reindirizzamento ($ _ SERVER ['HTTP_REFERER']);

Problemi correlati