Heim > php教程 > PHP开发 > Hauptteil

Bringen Sie Ihnen bei, wie Sie eine PHP-Sitzung verwenden

高洛峰
Freigeben: 2016-12-24 09:12:51
Original
1027 Leute haben es durchsucht

Die Verwendung von PHP-Sitzungen ist eigentlich sehr einfach. Es kann die vom Benutzer in einer Sitzung übermittelten Daten in Form einer globalen Variablen speichern und eine eindeutige Sitzungs-ID generieren. Dies dient dazu, Verwirrung zu vermeiden und denselben Browser in der Sitzung zu verwenden. Die gleiche Site kann nur eine session_id haben. Schauen wir uns an, wie die Sitzung verwendet wird.
Wie Sie die Sitzung verwenden, alles, was mit der Sitzung zusammenhängt, müssen Sie vorher die Funktion session_start() aufrufen.
Das Zuweisen eines Werts zur Sitzung ist sehr einfach, wie zum Beispiel:

<?php
Session_start();
$Name = "这是一个Session例子";
Session_Register("Name");//注意,不要写成:Session_Register("$Name");
Echo $_SESSION["Name"];
//之后$_SESSION["Name"]为"这是一个Session例子"
?>
Nach dem Login kopieren

Nach php4.2 , können Sie der Sitzung einen Wert zuweisen. Direkte Zuweisung:

<?PHP
Session_Start();
$_SESSION["name"]="value";
?>
Nach dem Login kopieren

Brechen Sie die Sitzung wie folgt ab:

<?php
session_start();
session_unset();
session_destroy();
?>
Nach dem Login kopieren

Sitzung lesen

Die in PHP integrierte Variable $_SESSION kann Greifen Sie einfach auf die festgelegte Sitzungsvariable zu.

<?php
session_start();
echo "登记的用户名为:".$_SESSION["username"];    //输出 登记的用户名为:nostop
?>
Nach dem Login kopieren
Überprüfen Sie, ob die Variable als Sitzungsvariable session_is_registered registriert ist.
Syntax: boobean session_is_registered(string name);

Diese Funktion kann prüfen, ob die angegebene Variable in der aktuellen Sitzung registriert wurde . Der Parametername ist der Name der zu prüfenden Variablen. Bei Erfolg wird der logische Wert true zurückgegeben.

<?php
    session_start();
    if(!session_is_registered("gender")){ //判断当前会话变量是否注册
        session_register("gender");    //注册变量
    }
    $gender="女";
    echo $_SESSION[&#39;gender&#39;];  //女
?>
Nach dem Login kopieren

Zugriff auf den aktuellen Sitzungsnamen session_name
Syntax: boolean session_name(string [name]);
Diese Funktion kann den Namen der aktuellen Sitzung abrufen oder zurücksetzen. Wenn kein Parametername vorhanden ist, bedeutet dies, den aktuellen Sitzungsnamen abzurufen, und das Hinzufügen des Parameters bedeutet, den Sitzungsnamen auf den Parameternamen festzulegen.

<?php
$sessionName = session_name();   //取得当前 Session 名,默认为 PHPSESSID
$sessionID = $_GET[$sessionName];   //取得 Session ID
session_id($sessionID);      //使用 session_id() 设置获得的 Session ID
?>
Nach dem Login kopieren

Zugriff auf die aktuelle Sitzungsidentifikationsnummer session_id
Syntax: boolean session_id(string [id]);
Diese Funktion kann die Identifikationsnummer der aktuell gespeicherten Sitzung abrufen oder zurücksetzen. Wenn keine Parameter-ID vorhanden ist, bedeutet dies, dass nur die Identifikationsnummer der aktuellen Sitzung abgerufen wird. Wenn der Parameter hinzugefügt wird, bedeutet dies, dass die Identifikationsnummer der Sitzung auf die neu angegebene ID gesetzt wird.
Legen Sie die Lebensdauer der Sitzung fest

<?php
    session_start
    // 保存一天
    $lifeTime = 24 * 3600;
    setcookie(session_name(), session_id(), time() + $lifeTime, "/");
?>
Nach dem Login kopieren

session_set_cookie_params: Legen Sie die Lebensdauer der Sitzung fest. Diese Funktion muss aufgerufen werden, bevor die Funktion session_start() aufgerufen wird.
Wenn der Client IE 6.0 verwendet, wird die Funktion session_set_cookie_params(); beim Setzen von Cookies einige Probleme haben, daher rufen wir die Funktion setcookie immer noch manuell auf, um Cookies zu erstellen.

<?php
// 保存一天
  $lifeTime = 24 * 3600;
  session_set_cookie_params($lifeTime);
  session_start();
  $_session["admin"] = true;
?>
Nach dem Login kopieren

Legen Sie den Speicherpfad der Sitzungsdatei fest
session_save_path(): muss aufgerufen werden, bevor die Funktion session_start() aufgerufen wird.

<?php
  // 设置一个存放目录
  $savePath = "./session_save_dir/";
  // 保存一天
  $lifeTime = 24 * 3600;
  session_save_path($savePath);
  session_set_cookie_params($lifeTime);
  session_start();
  $_session["admin"] = true;
?>
<?php
session_start();    //启动Session
$username=&#39;nostop&#39;;
session_register(&#39;username&#39;);    //注册一个名为username变量
echo &#39;登记的用户:&#39;.$_SESSION[&#39;username&#39;];    //登记的用户:nostop   读取Session变量
$_SESSION[&#39;age&#39;]=23;    //声明一个名为age的变量,并赋值
echo &#39;年龄:&#39;.$_SESSION[&#39;age&#39;]; //年龄:23
session_unregister(&#39;username&#39;); //注销Session变量
echo $_SESSION[&#39;username&#39;];  //空
echo $_SESSION[&#39;age&#39;];//23
unset($_SESSION[&#39;age&#39;]); //注销Session变量
echo &#39;登记的用户:&#39;.$_SESSION[&#39;username&#39;]; //空
echo &#39;年龄:&#39;.$_SESSION[&#39;age&#39;]; //空
?>
Nach dem Login kopieren

Hinweis:

1: Es kann keine Ausgabe erfolgen, bevor Session_Start() aufgerufen wird. Folgendes ist beispielsweise falsch.

Zeile 1
Zeile 2< ;?PHP
3 Zeilen Session_Start();//In der ersten Zeile wurde bereits ausgegeben
4 Zeilen....
5 Zeilen?>

Prompt 1:

Jedes Mal, wenn „.....Header bereits gesendet…“ angezeigt werden, bedeutet dies, dass Informationen vor Session_Start() an den Browser ausgegeben werden.
Entfernen Sie die Ausgabe und es wird normal sein (Dieser Fehler tritt auch in COOKIE auf, und der Grund ist derselbe)

Tipp 2:

Wenn Ihr Session_Start() in einer Schleifenanweisung platziert ist und es schwierig ist zu bestimmen, wohin die Ausgabe erfolgen soll Zur Information können Sie die folgende Methode verwenden:
1 Zeile
.....Hier ist Ihr Programm...


2: Was ist der Fehler?

Warnung: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) fehlgeschlagen:....
Weil Sie den Speicherpfad der Sitzungsdatei nicht angegeben haben.

Lösung:

(1) Erstellen Sie den Ordner tmp im Laufwerk C
(2) Öffnen Sie php.ini, suchen Sie session.save_path und ändern Sie es in session.save_path= " c: /tmp"

Weitere verwandte Artikel, die Ihnen die Verwendung von PHP-Sitzungen beibringen, 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!