2016-05-07 14 views
3

Ich bin neu in Codeigniter-Framework und ich verstehe nicht wirklich, wie funktioniert die integrierte Sitzung. Was ich will ist, dass wenn die Sitzung abläuft der Benutzer auf die Anmeldeseite umgeleitet wird. Ich überprüfte die Antworten in Google und anderen Stackoverflow-Fragen und probierte jeden Code in ihrem, aber es funktioniert nicht. In der nativen PHP-Sitzung muss ich nur angeben, dass, wenn die Sitzung in der angegebenen Zeit abläuft, die Weiterleitung erfolgt, aber wenn ich sie im Codeigniter anwende, funktioniert sie nicht. Ich weiß auch nicht, wie der Sitzungsablaufwert in der Konfiguration abgerufen wird, um ihn mit der aktuellen Zeit zu vergleichen, die der Benutzer während seiner protokollierten Sitzung angesammelt hat. Bitte helfen ....Codeigniter Redirect auf Login-Seite, wenn Sitzung bereits abläuft

Dies ist in Funktion in der Steuerung

public function check_session() 
{ 
    $logged_in = $this->session->userdata('logged_in'); 

    if(!$logged_in) 
    { 
     $this->logout(); 
    } 
} 

Und das ist die Ajax:

setInterval(function(){ 
$.ajax({ 
    type: 'POST', 
    url: "<?php echo site_url('tms/check_session');?>", 
    success: function(data){ 
     console.log(data); 
    } 
}); 
},300); 
+0

Warum gab mir ein Negativ, wenn sie nicht einmal einen Kommentar warum? – SilverRay

+0

Ich habe dich nicht abgestimmt: Aber sie tun das sehr viel hier, aber ich denke, warum ist, weil Sie keinen Code haben, den Sie ausprobiert haben und es ist zu Board – user4419336

+0

bieten, was Sie versucht haben –

Antwort

2

zunächst einen Kern-Controller unter application/core erstellen. Sie rufen kann MY_Controller.php

Hier ein Beispiel für MY_Controller.php ist:

class User_Controller extends CI_Controller { 

    public function __construct() 
    { 

     parent::__construct(); 

     if ($this->session->userdata['logged'] == TRUE) 
     { 
      //do something 
     } 
     else 
     { 
      redirect('login'); //if session is not there, redirect to login page 
     } 

    } 
} 

Erstellen Sie Ihre Controller-Klassen wie folgt:

class Someclass extends User_Controller 

Auch sollten Sie einen Wert übergeben, die „angemeldet“ genannt in Ihrem Sitzungs-Array. Zum Beispiel:

Jetzt, wenn die Sitzung endet, leitet das System den Benutzer zur Anmeldeseite um. Wenn Sie diese Sitzung über JavaScript steuern möchten, sollten Sie etwas Code dafür schreiben. Übrigens, ich schlage das nicht vor. Sie müssen die Systemauslastung nicht erhöhen. Wenn eine Sitzung mit dem Code endet, wenn der Benutzer eine andere Seite besuchen möchte, wird das System ihn rausschmeißen.

public function check_session() 
{ 


    if(!$this->session->userdata['logged']) 
    { 
     redirect('someurl'); 
    } 
} 
+0

Ich habe versucht, Ihren Code aber nicht in meinem Controller, aber in meiner Ansicht Header-Seite und es funktioniert ... Danke ... – SilverRay