Wenn wir die Grundlagen von PHP lernen, werden wir auf die Sitzungskontrolle stoßen. Ich konnte es einfach nicht verstehen. Später habe ich es während der Entwicklung herausgefunden So einfach. Vielleicht ist das Verständnis noch zu gering. Heute werden wir darüber sprechen, wie man Session im ThinkPHP-Framework verwendet! Die Session-Klasse ist in ThinkPHP gekapselt und Benutzer können sie direkt verwenden:
Sitzung registrieren
BenutzermodulsitzungBeispiel für eine Registrierungssitzung für Testvorgänge:sessionTest.html-Vorlage (Fragment):
Wann Geben Sie den Benutzernamen ein (z. B. testuser) und senden Sie ihn nach dem Klicken auf die Schaltfläche „Senden“ an die sessionTest-Methode (d. h. die aktuelle Seite), um den Sitzungswert zu verarbeiten und zu registrieren. Verwenden Sie zur Steuerung das vorhandeneclass UserAction extends Action{ public function session(){ if(!emptyempty($_POST['username'])){ Session::set('username',$_POST['username']); } $this->display(); } }
die Ausgabelogik und erkennt, dass $_SESSION['username'] registriert wurde. Variablen werden ausgegeben:
<p> < present name="_SESSION['username']">{$_SESSION['username']} 你好! < a href="APP/">首页</a> < a href="URL/user">本模块其他页面</a> < a href="URL/logout">注销</a><else />请输入您的用户名: < /p> < form action="SELF" method="post"> < p><input type="text" name="username" /></p> < p><input type="submit" value=" 提交 " /></p> < /form> < /present>
Andernfalls wird das Formular ausgegeben.
Überprüfen Sie, ob die Sitzung registriert ist
In der Vorlage erkennen
In der Vorlage können Sie present oder direkt verwenden notempty oder even switch usw. Das Tag bestimmt, ob die Sitzungsvariable registriert ist, um zu entscheiden, ob der entsprechende Sitzungswert ausgegeben wird (der Wert der Sitzungsvariablen direkt als Ausgabearray-Einheit ausgegeben wird) oder andere Seitenelemente angezeigt werden Vorlagen-Tag-Teil dieses Tutorials und das obige Beispiel.Erkennung im Betrieb
Im Betrieb können Sie die Methode Session::is_set verwenden, um zu überprüfen, ob der Wert von Session ist beispielsweise wie folgt eingestellt:Andere Modulseiten
public function user(){ // 由于直接在操作里输出,为避免乱码 header("Content-Type:text/html; charset=utf-8"); if(Session::is_set('username')){ echo Session::get('username').' 你好'; }else{ echo 'session 未注册'; } }
ThinkPHP Die Sitzung ist möglicherweise ungültig (kann nicht an andere Seiten übergeben werden):
<present name="_SESSION['username']"> {$_SESSION['username']} 你好! <else />未登录 </present> session 无效(无法传递)
Auf der Seite werden Informationen ausgegeben, z. B. Eintragsdatei
enthält Leerzeilen. usw. Der Sitzungsspeicherpfad (session.save_path) auf dem Server (Linux/Unix) verfügt über falsche Berechtigungen, was dazu führt, dass die Sitzungsinformationen nicht korrekt gespeichert werden können.Vorschläge für Umfangsprobleme:
Die Session-Klasse von ThinkPHP ist nur ein einfacher Wrapper für die Sitzung. Tatsächlich können Sie die native Sitzungsfunktion von PHP direkt im Betrieb verwenden. Dies ist auch die offizielle Empfehlung.Sie sollten sich auch diese ansehen:
Einführung in PHP-Sitzungssteuerungssitzung und Cookies
Detaillierte Erläuterung des Sessionid-Verarbeitungsmechanismus in Laravel
Das obige ist der detaillierte Inhalt vonErläuterung zur Verwendung der Sitzung in thinkphp. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!