Ich benutze die Codeigniter Tank Auth-Bibliothek für die Arbeit mit Benutzern und es hat gut funktioniert. Jedes Mal, wenn ich versuche, jeden Controller für den Zugriff auf die Funktion überprüft, ob der Benutzer wie folgt angemeldet:Codeigniter Tank Auth - Benutzer wird aus keinem ersichtlichen Grund ausgeloggt
if($this->tank_auth->is_logged_in()) {
Wenn es angemeldet ist, ich das Modell laden, aber wenn nicht, kann ich eine Umleitung auf die Login-Seite. Es hat einen Monat lang so funktioniert, aber jetzt erweitere ich meine Anwendung und baue einige andere Controller, die die gleiche Technik verwenden, aber die Dateien befinden sich in einem anderen Ordner. Die vorherige funktionierende Anwendung funktioniert immer noch gut, aber in dieser App aus dem neuen Ordner (es ist im Grunde ein neues Modul für diese Anwendung, verwendet die gleiche Login-Seite, aber leitet je nach Benutzerauswahl des Moduls anders) Ich kann mich korrekt anmelden, kann ich ein jede Anfrage an den Controller ohne Probleme, aber irgendwann sagt es mir, der Benutzer ist nicht eingeloggt. Es ist nicht die Sitzung abgelaufen oder etwas, es ist wie ich jetzt eine Anfrage machen, meine Sitzung und die nächste um 3 Sekunden erweitern Intervall lässt den Benutzer abmelden ... Ich habe mit meinen neuen Controllern nichts anderes gemacht, aber nach einer Weile dauert es manchmal 5 Minuten, manchmal 15 Minuten, es meldet sich ab ... Ich weiß nicht warum, Ist etwas mit meiner Sitzung unordentlich? Ich benutze keine Sitzung für etwas anderes ...
Jeder weiß, worum es geht? Oder irgendeinen Vorschlag? Ich kann weitere Details angeben, wenn gewünscht.
Vielen Dank.
EDIT: Das neue Modul besteht in mehreren Controllern in dem gleichen Codeigniter instalieren, es funktioniert mit der gleichen CI config gleicher Tank Auth Bibliothek und die Funktionen sind mit dem Hauptanforderung Controller wie folgt kopiert:
class Requests extends Controller
{
function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url'));
$this->load->helper('date');
$this->load->library('form_validation');
$this->load->library('tank_auth');
}
..............
more functions
..............
function getServices() { /// One of the functions that the new module uses
if (!$this->tank_auth->is_logged_in()) {
return;
} else {
$this->load->model('requests/getServices');
$data['tid'] = $_POST['tid'];
$this->getServices->showData($data);
}
}
Ich habe das gleiche Problem von einem Legacy-Code, an dem ich arbeite. Kannst du genau beschreiben, was du getan hast? Haben Sie die Verwendung von $ _SESSION direkt im Code entfernt? – Strategist