Heim > php教程 > PHP开发 > Detaillierte Erläuterung der Sitzungsnutzung in ThinkPHP

Detaillierte Erläuterung der Sitzungsnutzung in ThinkPHP

高洛峰
Freigeben: 2016-12-22 10:25:49
Original
1521 Leute haben es durchsucht

Die Beispiele in diesem Artikel beschreiben die Verwendung von Session in ThinkPHP. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Die Session-Klasse ist in ThinkPHP gekapselt und Benutzer können sie direkt verwenden:

Session::set(name, value): Sitzung registrieren .

Session::is_set(name): Überprüfen Sie, ob der Wert von Session gesetzt ist.

Session::get(name): Sitzung lesen.

Session::clear(): Sitzung löschen.

Session::destroy(): Sitzung zerstören.

ThinkPHP öffnet die Sitzung standardmäßig, daher ist es nicht erforderlich, die Funktion session_start() zu verwenden, um die Sitzung zu öffnen, bevor Sie die Session-Klasse verwenden.

Verwenden Sie die Sitzungsinstanz

Im folgenden Formular eingereicht Registrieren Sie die Sitzung im Vorlagenmodus und den Session::get-Modus im Vorgang auf den anderen beiden Seiten

Sitzung registrieren

Benutzermodul-SitzungTestvorgang zum Registrieren der Sitzungsbeispiel:

class UserAction extends Action{  
public function session(){  
if(!emptyempty($_POST['username'])){  
Session::set('username',$_POST['username']);  
}  
$this->display();  
}  
}
Nach dem Login kopieren

sessionTest.html-Vorlage (Fragment):

<p>  
<present name="_SESSION[&#39;username&#39;]">{$_SESSION[&#39;username&#39;]} 你好!  
<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>
Nach dem Login kopieren

Wenn Sie den Benutzernamen (z. B. testuser) eingeben, klicken Sie auf die Schaltfläche „Senden“ und senden Sie ihn an die sessionTest-Methode (d. h. die aktuelle Seite) Verarbeiten und registrieren Sie den Sitzungswert, verwenden Sie das vorhandene Vorlagen-Tag, um die Ausgabelogik zu steuern, erkennen Sie, dass die Variable $_SESSION['username'] registriert wurde, und geben Sie Folgendes aus:


testuser Hallo! Startseite Abmelden

Andernfalls wird das Formular ausgegeben.

Überprüfen Sie, ob die Sitzung registriert ist

In der Vorlage erkennen

In der Vorlage können Sie Tags wie present oder notempty direkt verwenden oder sogar wechseln, um festzustellen, ob die Sitzung Die Variable wird registriert, um den entsprechenden Ausgabesitzungswert zu ermitteln (den Sitzungsvariablenwert direkt in Form einer Ausgabearray-Einheit auszugeben) oder andere Seitenelemente anzuzeigen. Weitere Informationen finden Sie im Abschnitt „Vorlagen-Tag“ dieses Tutorials und im obigen Beispiel 🎜>

Erkennung im Betrieb

Im Betrieb können Sie mit der Methode Session::is_set prüfen, ob der Wert der Sitzung festgelegt ist. Das Benutzermodul user funktioniert beispielsweise wie folgt:

public function user(){  
// 由于直接在操作里输出,为避免乱码  
header("Content-Type:text/html; charset=utf-8");  
if(Session::is_set(&#39;username&#39;)){  
echo Session::get(&#39;username&#39;).&#39; 你好&#39;;  
}else{  
echo &#39;session 未注册&#39;;  
}  
}
Nach dem Login kopieren
Andere Modulseiten

Beurteilen und lesen Sie auf anderen Seiten (z. B. Index/Index) den Codeausschnitt der Sitzung:

Sitzung ist ungültig (kann nicht bestanden werden). )
<present name="_SESSION[&#39;username&#39;]">{$_SESSION[&#39;username&#39;]} 你好!<else />未登录</present>
Nach dem Login kopieren
In ThinkPHP ist die Sitzung möglicherweise ungültig (kann nicht an andere Seiten übergeben werden), mögliche Gründe Wie folgt:

Verwenden Sie den ersten Buchstaben der Session-Klasse ohne Großbuchstaben, wie zum Beispiel: session::set.

Die Seite verfügt über eine Informationsausgabe, z. B. enthält die Eintragsdatei Leerzeilen usw.

Auf dem Server (Linux/Unix) Der Sitzungsspeicherpfad (session.save_path ) hat falsche Berechtigungen, was dazu führt, dass Sitzungsinformationen nicht korrekt gespeichert werden können.

Vorschläge für Bereichsprobleme:

ThinkPHPs Session-Klasse führt dies nur für Sitzungen aus. Ohne einfaches Paketieren können Sie tatsächlich PHPs native verwenden Sitzungsfunktion direkt im Betrieb, was auch die offizielle Empfehlung ist

Ich hoffe, dieser Artikel wird für die Programmierung des ThinkPHP-Frameworks hilfreich sein.

Ausführlichere Erläuterungen zur Sitzungsnutzung in ThinkPHP finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage