Heim > Backend-Entwicklung > PHP-Tutorial > Wie verwende ich eine PHP-Sitzung?

Wie verwende ich eine PHP-Sitzung?

怪我咯
Freigeben: 2023-03-13 09:34:02
Original
1457 Leute haben es durchsucht

PHP lernen Sitzung kann an vielen Stellen verwendet werden, z. B. zum Erstellen einer Hintergrund-Anmeldefunktion. Es ist eigentlich sehr einfach, das Programm dazu zu bringen, sich an die Sitzung des Benutzers zu erinnern. Sie werden es verstehen, nachdem Sie den folgenden Artikel gelesen haben.

Die Verwendung von PHP-Sitzungen ist eigentlich sehr einfach. Es kann die vom Benutzer in einer Sitzung übermittelten Daten als globale Variable speichern und eine eindeutige Sitzungs-ID generieren Die gleiche Site kann nur eine session_id haben. Schauen wir uns an, wie die Sitzung verwendet wird.
So verwenden Sie die Sitzung: Alles, was mit der Sitzung zusammenhängt, muss vor der Funktion session_start(); aufgerufen werden.
Das Zuweisen eines Werts zur Sitzung ist sehr einfach, wie zum Beispiel:

Der Code lautet wie folgt:

<?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 direkt einen Wert zuweisen:

Der Code lautet wie folgt:

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

Um die Sitzung abzubrechen, können Sie Folgendes tun:

Der Code lautet wie folgt:

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

Sitzung lesen

PHP ist integriert Die Variable $_SESSION kann problemlos auf die festgelegte Sitzungsvariable zugreifen.

Der Code lautet wie folgt:

<?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 die aktuelle überprüfen. Ob die angegebene Variable in der Sitzung registriert wurde, ist der Parametername der Variablenname , der überprüft werden soll. Bei Erfolg wird der logische Wert true zurückgegeben.

Der Code lautet wie folgt:

<?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 Abrufen oder Zurücksetzen des Namens der aktuellen Sitzung. Wenn kein Parametername vorhanden ist, bedeutet dies, den aktuellen Sitzungsnamen abzurufen, und das Hinzufügen des Parameters bedeutet, den Sitzungsnamen auf den Parameternamen festzulegen.

Der Code lautet wie folgt:

<?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

Der Code lautet wie folgt:

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

session_set_cookie_params: Um die Lebensdauer der Sitzung festzulegen, muss diese Funktion vor dem aufgerufen werden Die Funktion session_start() wird aufgerufen.
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.

Der Code lautet wie folgt:

<?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 .

Der Code lautet wie folgt:

<?php
  // 设置一个存放目录
  $savePath = "./session_save_dir/";
  // 保存一天
  $lifeTime = 24 * 3600;
  session_save_path($savePath);
  session_set_cookie_params($lifeTime);
  session_start();
  $_session["admin"] = true;
?>
Nach dem Login kopieren
<?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: Vor dem Aufruf von Session_Start() kann beispielsweise keine Ausgabe erfolgen , Folgendes ist falsch .

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

Tipp 1:

Immer wenn „.....headers bereits gesendet.....“ erscheint, handelt es sich um Session_Start(), an die Informationen ausgegeben wurden
Entfernen Sie die Ausgabe und es wird normal sein (Dieser Fehler tritt auch in COOKIE auf und der Fehlergrund ist derselbe)

Tipp 2:

Wenn Ihr Session_Start() fügt eine Schleifenanweisung ein und es ist schwierig zu bestimmen, wo die Informationen zuvor an den Browser ausgegeben wurden. Sie können die folgende Methode verwenden:
line 1Ob_Start(); ?>
.......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 auf dem Laufwerk C:
(2) Öffnen Sie php.ini, suchen Sie session.save_path und ändern Sie es in session.save_path= "c:/tmp"

Das obige ist der detaillierte Inhalt vonWie verwende ich eine PHP-Sitzung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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 Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage