Heim > Artikel > Backend-Entwicklung > Wie kann ich eine Sitzung in PHP einrichten, abrufen und löschen?
Im vorherigen Artikel habe ich Ihnen „Wie erstellt, liest und löscht man Cookies in PHP?“ vorgestellt. 》, das ausführlich vorstellt, wie man Cookies in PHP erstellt, liest und löscht. In diesem Artikel werfen wir einen Blick auf das Einrichten, Erhalten und Löschen von Sitzungen in PHP. Hoffe, es hilft allen!
Im vorherigen Artikel haben wir das vom Client zum Speichern von Benutzerdaten verwendete Cookie
vorgestellt. In diesem Artikel werfen wir einen Blick auf die Sitzung<code>cookie
,本篇我们来看一下在PHP中占有非常重要地位的session
,session是一种服务器端的机制,也是用来保存信息的,相比于保存在客户端的cookie,保存在服务器端的session用户是无法禁用的,同一个客户端每次和服务端交互时,不需要每次都传回所有的cookie值,只需要传回一个ID就可以了,这个ID是第一次访问服务器的时候生成的,并且是唯一的。
那接下来就来看一看到底什么是session,应该怎样去设置、获取和删除session吧
什么是session
session中文意思是会话,它用来储存使用者的相关资料的,这与cookie类似,例如用户名、个性化设置等等,与cookie不同的是,cookie是将资料保存在客户端的电脑中,用户可以禁用;而session是将数据保存在服务器系统下。网页是无状态的程序连接,无法记录用户的状态,因此通过session来记录用户的相关信息就显得尤为重要。
当开启一个session是,PHP会随机的创建一个sessionID
,每个用户的sessionID是唯一的。这个sessionID在客户端与服务器端都会有保存的位置,保存在客户端会使用cookie的指定目录里;在服务器端回忆文本的形式保存到指定的session目录里。
与cookie相比,session是有很多优势的:
因为session的数据不会在客户端与服务器端来回的反复传递,所以通常情况下session还是更安全的;session能够存储的信息比cookie要多很多;用户可以禁用cookie,但是有方法能够是session正常工作。
了解了什么是session后,接下来看一看应该怎样去开启session。
开启session
不同于cookie,使用cookie可以直接创建,而在使用session之前必须先启动,目的是为了让PHP中的核心程序能够将session相关的内建环境预先加载到内存中。
在PHP中通过session_start()
函数可以实现开启session的目的,函数session_start()的语法格式如下:
session_start ([array $options = array()])
其中需要注意的是:
$options
是一个可选函数,是一个关联数组,并且这个数组中的键不需要包含session.前缀。
示例如下:
<?php session_start([ 'cookie_lifetime' => 60*60*24, // 设置 cookie 的有效时间为 1 天 ]); echo 'Session ID 为:'.$_COOKIE['PHPSESSID']; ?>
输出结果:
需要注意的是:调用 session_start()
函数会生成一个唯一的 Session ID,并保存在浏览器的 Cookie 中,默认名称为“PHPSESSID”。同时,在本地目录中生成一个以“sess_”加上 Session ID 组成的 Session 文件,用来存储 Session 中的数据,输出结果:
通过上述实例,已经了解到了应该怎样去开启session,那接下来看一下应该怎样去设置和获取session
设置和获取session
在上文中,启动了session之后,想要使用session变量,还需要经过设置和获取session中的数据,想要完成这些还需要通过$_SESSION
数组来完成。使用$_SESSION之前必须要先试用session_start()
函数来开启session才可以。
$_SESSION
session
? Sitzung, die zum Speichern benutzerbezogener Informationen verwendet wird, z. B. Benutzernamen, personalisierte Einstellungen usw. Im Gegensatz zu Cookies speichern Cookies Informationen auf dem Computer des Kunden und können vom Benutzer deaktiviert werden Daten unter dem Serversystem. Die Webseite ist eine zustandslose Programmverbindung und kann den Status des Benutzers nicht aufzeichnen. Daher ist es besonders wichtig, die relevanten Informationen des Benutzers während der Sitzung aufzuzeichnen. Wenn eine Sitzung geöffnet wird, erstellt PHP zufällig eine sessionID
, und die sessionID jedes Benutzers ist eindeutig. Diese Sitzungs-ID wird sowohl auf dem Client als auch auf dem Server gespeichert. Sie wird in dem angegebenen Verzeichnis gespeichert, das Cookies auf dem Client verwendet. Sie wird in Form von abgerufenem Text im angegebenen Sitzungsverzeichnis gespeichert.
Im Vergleich zu Cookies haben Sitzungen viele Vorteile:
Da Sitzungsdaten nicht wiederholt zwischen Client und Server ausgetauscht werden, sind Sitzungen in der Regel sicherer. Es können viel mehr Informationen gespeichert werden Cookies; Benutzer können Cookies deaktivieren, es gibt jedoch Möglichkeiten, dafür zu sorgen, dass die Sitzung ordnungsgemäß funktioniert.
Nachdem wir verstanden haben, was eine Sitzung ist, werfen wir einen Blick darauf, wie man eine Sitzung eröffnet. Öffnen Sie session
session_start()
erreicht werden. Das Syntaxformat der Funktion session_start() lautet wie folgt: 🎜$_SESSION[名称] = 值;🎜Was benötigt wird Zu beachten ist:
$options
ist eine optionale Funktion und ein assoziatives Array, und die Schlüssel in diesem Array müssen das Sitzungspräfix nicht enthalten. <?php session_start(); $str = '好好学习'; $arr = ['Session','$_SESSION']; $_SESSION['study'] = $str; $_SESSION['study1'] = '天天向上'; $_SESSION['title'] = $arr; foreach ($_SESSION as $key => $value) { if(is_array($value)){ echo $key.':'; print_r($value); }else{ echo $key.' = '.$value.'<br>'; } } ?>🎜Ausgabeergebnis:
session_start()
eine eindeutige Sitzungs-ID generiert und im gespeichert wird Browser-Cookie, der Standardname ist „phpsessid“. Gleichzeitig wird im lokalen Verzeichnis eine Sitzungsdatei bestehend aus „sess_“ plus Sitzungs-ID generiert, um die Daten in der Sitzung zu speichern. Das Ausgabeergebnis ist: 🎜🎜🎜🎜Durch die obigen Beispiele haben wir gelernt, wie man die Sitzung öffnet, also lasst uns Schauen Sie sich an, was als Nächstes zu tun ist. So legen Sie die Sitzung fest und erhalten sie Variablen müssen Sie die Daten in der Sitzung festlegen und abrufen. Dies müssen Sie über das Array $_SESSION
abschließen. Bevor Sie $_SESSION verwenden, müssen Sie zunächst die Funktion session_start()
ausprobieren, um die Sitzung zu öffnen. 🎜🎜$_SESSION
ist ein assoziatives Array, das dieselbe Bedeutung hat wie ein normales assoziatives Array-Schlüssel-Wert-Paar. Das Syntaxformat zum Festlegen der Sitzung lautet wie folgt: 🎜unset(mixed $var [, mixed $...])🎜Das Beispiel lautet wie folgt: 🎜
<?php session_start(); echo '<pre class="brush:php;toolbar:false">'; $str = '好好学习'; $arr = ['删除 Session','$_SESSION']; $_SESSION['study'] = $str; $_SESSION['study1'] = '天天向上'; $_SESSION['title'] = $arr; echo '定义一个 Session,如下所示:<br>'; print_r($_SESSION); echo '删除 Session 中名为 title 的元素:<br>'; unset($_SESSION['title']); print_r($_SESSION); ?>🎜Ausgabeergebnis: 🎜🎜🎜🎜🎜Bitte beachten Sie nach dem Ausführen: Diese Variablen oder Arrays werden in $_SESSION gespeichert und auch gespeichert Gespeichert in der Datei mit dem Namen „sess_“ und der Sitzungs-ID auf der Serverseite. Der Speicherort dieser Datei kann durch Ändern der Konfigurationsdatei php.ini oder mithilfe von session.save_path konfiguriert werden. 🎜🎜Wir haben bereits gelernt, wie man eine Sitzung öffnet, einrichtet und erhält. Als nächstes schauen wir uns an, wie man eine Sitzung löscht. 🎜🎜🎜🎜Eine einzelne Sitzung löschen🎜🎜🎜
删除单个session元素需要通过unset()
函数,该函数可以释放指定的变量,相当于直接注销掉数组中的元素,他的语法格式如下:
unset(mixed $var [, mixed $...])
其中需要注意的是:
$var
为要释放的变量,unset()
函数可以接收多个参数,参数之间使用,
分隔。
实例如下:
<?php session_start(); echo '<pre class="brush:php;toolbar:false">'; $str = '好好学习'; $arr = ['删除 Session','$_SESSION']; $_SESSION['study'] = $str; $_SESSION['study1'] = '天天向上'; $_SESSION['title'] = $arr; echo '定义一个 Session,如下所示:<br>'; print_r($_SESSION); echo '删除 Session 中名为 title 的元素:<br>'; unset($_SESSION['title']); print_r($_SESSION); ?>
输出结果:
如此便通过unset()函数完成了删除session单个元素了。
删除session多个元素
如果想要一次性删除多个 Session 元素,即一次注销所有的会话变量,可以通过将一个空的数组赋值给 $_SESSION
来实现
实例如下:
<?php session_start(); echo '<pre class="brush:php;toolbar:false">'; $str = '好好学习'; $arr = ['删除 Session','$_SESSION']; $_SESSION['study'] = $str; $_SESSION['study1'] = '天天向上'; $_SESSION['title'] = $arr; echo '定义一个 Session,如下所示:<br>'; print_r($_SESSION); echo '删除 Session 中名为 title 的元素:<br>'; $_SESSION = array(); print_r($_SESSION); ?>
通过将一个空的数组赋值给 $_SESSION 输出结果:
还有一种方法就是通过session_unset() 函数来释放session中的所有元素,实例如下:
<?php session_start(); echo '<pre class="brush:php;toolbar:false">'; $str = '好好学习'; $arr = ['删除 Session','$_SESSION']; $_SESSION['study'] = $str; $_SESSION['study1'] = '天天向上'; $_SESSION['title'] = $arr; echo '定义一个 Session,如下所示:<br>'; print_r($_SESSION); echo '删除 Session 中名为 title 的元素:<br>'; session_unset(); print_r($_SESSION); ?>
输出结果与上述实例的结果相同,由此我们便通过两种方法可以删除session多个元素了。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
Das obige ist der detaillierte Inhalt vonWie kann ich eine Sitzung in PHP einrichten, abrufen und löschen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!