Wie codeigniter aufbauen login-Seite und die Sitzung mit einem Domänencontroller
Hallo. Ich habe ein problem mit meinen sessions, ich bin neu bei CodeIgniter, also bitte Geduld mit mir. Hier ist meine index-Funktion:
function index()
{
$username;
$pWord; //assume these two variables has valid and correct value
if($this->coreModel->authenticate($username, $pWord)){
$user = $this->coreModel->authenticate($username, $pWord);
foreach($user->result() as $key) {
$this->session->set_userdata(array(
'logged_in' => TRUE,
'cl_UserId' => $key->cl_UserId,
'cl_username' => $key->cl_username,
'cl_roles' => $key->cl_roles));
if($this->session->userdata('cl_roles') == 1){
header("Location: ".base_url()."controller/homepage");
} else {
$this->load->view('loginPage',$this->data);
}
}
} else {
//$this->data['msg'] = "Wrong Username/Password";
$this->load->view('loginPage',$this->data);
}
}
function kickIfNotInSession(){
if ($this->session->userdata('logged_in') == FALSE)
{
redirect('controller');
}
}
Wenn ich geben Sie einen gültigen Benutzernamen und Passwort, es funktioniert gut, und die Seite geht auf die homepage. In meiner homepage, ich echo
die id
und username
. Auch in meiner homepage habe ich ein Registerkarten-Menü. In alle Seiten, die ich echo
die id
und username
. Ich habe auch Hinzugefügt eine kickIfNotInSession () - Funktion in allen Funktionen, zum Beispiel:
function test() {
$userid = $this->session->userdata("logged_in");
$this->kickIfNotInSession();
$this->load->view("test");
}
Außerdem habe ich autoload.php:
$autoload['helper'] = array('url');
$autoload['libraries'] = array('database','session');
Nach der Anmeldung klickte ich alle Registerkarten und aus irgendeinem Grund funktioniert es einwandfrei. Es spiegelt die id
und username
, aber nach ein oder zwei Minuten, wenn ich auf mein tab, es kickt mich aus den Sitzungen und leitet mich auf die login-Seite. Ich Frage mich, wie das passiert ist. Bin ich etwas fehlt?
InformationsquelleAutor CaffeineShots | 2013-05-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen sess_expiration parameter in application/config/config.php Datei. Kann sein das es falsch eingestellt.
InformationsquelleAutor Sefus
Es klingt wie Sie Ihre Sitzung expriation setzen auf einen sehr niedrigen Wert, werfen Sie sich nach paar Minuten.
Springen
application/config/config.php
scrollen Sie nach unten und suchen Sie nach$config['sees_expiration']
.Das ist, was legt die Verfallszeit (in Sekunden). Ändern Sie es zu was auch immer für Sie arbeitet, und versuchen Sie es erneut.
Können Sie auch einen Blick auf CodeIgniter-Handbuch hier (unten auf der Seite).
InformationsquelleAutor Lior Elrom
Sollten Sie erhöhen zum Ablauf der Sitzung Zeit. Ändern expirationtime
Hinweis: die Session-Verfall Zeit berücksichtigen, in der zweiten.
InformationsquelleAutor Anwar Hossain