2015-09-30 2 views
-1

bonjour tout le monde peut m'aider à résoudre ce problème de redirection dans codeigniter. Je crée un crochet pour l'authentification de connexion.post_controller_constructor Hooks redirection isseus dans CodeIgniter

ci-dessous est mon crochet

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Login_auth { 

    function __construct() { 
     $this->CI = &get_instance(); 
     if (!class_exists('session')) 
     { 
      $this->CI->load->library('session'); 
     }    
    } 

    function auth(){         
     if(! $this->CI->session->userdata('islogin') 
     { 
      redirect(base_url().'loginCtrl/index'); 
     } 
    } 

le but de créer crochet lorsque je tente d'entrer une URL sans être connecté, il devrait rediriger vers la page de connexion

mais il montre page Web a rediriger boucle

+0

qui est le nom de votre contrôleur de ce code – Janaka

+0

nom du contrôleur est loginCtrl.php –

Répondre

0

Il aura une boucle de redirection car il vérifie chaque page pour une session. Y compris la page de connexion.

Vous pourriez faire quelque chose comme ceci;

if(!$this->CI->session->userdata('islogin')) { 
    // Not logged in. Are they trying to login? 
    if(!in_array($this->CI->uri->uri_string(), array('login', 'forgot-password'))) 
    { 
     redirect('login'); 
    } 
} 

Cela vérifiera si l'utilisateur est connecté. Si leur pas, il vérifiera la uri_string actuelle et la comparer à un tableau de « permis » array('login', 'forgot-password')

de Hope uri cette aide.

+0

mais ce qui est array (« login », « oublié mot de passe ») –

+0

'(« login », « oublié mot de passe »)' est le tableau des URI que l'utilisateur peut visiter sans avoir été connecté. – Craig

+0

mais je dois autoriser la visite seulement la page de connexion –