Heim  >  Artikel  >  PHP-Framework  >  Wie thinkphp die Sitzungsüberprüfung auf jeder Seite einrichtet

Wie thinkphp die Sitzungsüberprüfung auf jeder Seite einrichtet

PHPz
PHPzOriginal
2023-04-11 15:10:09907Durchsuche

Angesichts der rasanten Entwicklung des Internets erforschen Entwickler ständig neue Technologien und Frameworks. Eines der beliebtesten Frameworks ist thinkphp. thinkphp ist ein effizientes, schnelles und leistungsstarkes PHP-Framework, das die Effizienz während des Entwicklungsprozesses erheblich verbessern kann und außerdem eine gute Skalierbarkeit und Offenheit aufweist. Im thinkphp-Framework ist die Sitzung ein unverzichtbarer Bestandteil, insbesondere bei der Überprüfung der Benutzeranmeldung und der Identitätsauthentifizierung. In diesem Artikel erfahren Sie, wie Sie die Sitzungsüberprüfung auf jeder Seite einrichten.

1. Verwendung von Session im Thinkphp-Framework

Session ist eine Technologie, die zum Speichern temporärer Benutzerinformationen auf der Website verwendet wird. Im thinkphp-Framework ist die Verwendung der Sitzung sehr einfach. Sie müssen lediglich den folgenden Code ausführen:

session_start(); //开启session
$_SESSION['key'] = 'value'; //设置session变量

Natürlich können Sie auch die im thinkphp-Framework bereitgestellte Sitzungsklasse verwenden. Der spezifische Code lautet wie folgt:

use think\facade\Session;
Session::set('key', 'value');

2. Überprüfen Sie automatisch, ob die Sitzung vorhanden ist.

Um die Sicherheit des Systems zu gewährleisten, müssen wir überprüfen, ob sich der Benutzer angemeldet hat. Im Thinkphp-Framework können Sie den Middleware-Mechanismus verwenden, um eine Sitzungsüberprüfung auf jeder Seite durchzuführen und so eine automatische Überprüfung zu erreichen. Der spezifische Code lautet wie folgt:

namespace app\http\middleware;

use Closure;
use think\facade\Session;
use think\exception\HttpException;

class CheckLogin
{
    public function handle($request, Closure $next)
    {
        if (!Session::has('user_id')) {
            throw new HttpException(401, '请先登录');
        }

        return $next($request);
    }
}

Im obigen Code wird der Namespace zunächst verwendet, um den Speicherort zu definieren, an dem die benutzerdefinierte Anwendungs-Middleware verwendet wird, dh im Verzeichnis „apphttpmiddleware“. Bestimmen Sie in der Methode handle() zunächst, ob der Benutzer angemeldet ist, indem Sie feststellen, ob die Variable user_id in der Sitzung vorhanden ist. Wenn keine Anmeldung erfolgt, wird eine HTTP-Ausnahme ausgelöst, um den Benutzer zur Anmeldung aufzufordern.

3. Verwenden Sie Middleware im Controller

Im thinkphp-Framework können Sie entsprechende Prüfungen hinzufügen, indem Sie Middleware im Konstruktor des Controllers aufrufen, um zu überprüfen, ob der Benutzer normal angemeldet ist. Der spezifische Code lautet wie folgt:

namespace app\controller;

use app\http\middleware\CheckLogin;
use think\Controller;

class Index extends Controller
{
    protected $middleware = [
        CheckLogin::class,
    ];

    //index方法省略
}

Im obigen Code wird der Namespace zur Definition verwendet. Die Controller-Klasse erbt die übergeordnete Klasse im Think-Framework und definiert eine Middleware CheckLogin, was bedeutet, dass die CheckLogin-Middleware im Controller eingeführt wird , also Implementieren Sie die Überprüfung der Benutzer-Login-Identität.

In diesem Artikel wird hauptsächlich die Verwendung von Sitzungen im Thinkphp-Framework vorgestellt, um zu überprüfen, ob der Benutzer angemeldet ist, und wie der Middleware-Mechanismus verwendet wird, um eine automatische Überprüfung jeder Seite zu erreichen. Wenn Sie die Anwendung einer Sitzung kompetent beherrschen möchten, ist noch ein langer Übungs- und Lernprozess erforderlich. Ich hoffe, dass dieser Artikel den Lesern beim Studium und in der Praxis etwas Hilfe und Referenz bieten kann.

Das obige ist der detaillierte Inhalt vonWie thinkphp die Sitzungsüberprüfung auf jeder Seite einrichtet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn