PHP Sessions

PHP sessionens variabler används för att lagra information om användar sessionsen eller ändra inställningar för användar sessionen. Sessionens variabler sparar information för en enskild användare och är tillgängliga för alla sidor i applikationen.

PHP Session Variabler

När du kör ett program öppnar du det, gör några ändringar och stänger det. Det liknar en session. Datorn vet vem du är. Den vet när du startar ett program och när du avslutar. Men på internet finns ett problem: servern vet inte vem du är eller vad du gör, eftersom HTTP-adressen inte kan underhålla tillstånd.

Genom att lagra användarinformation på servern för senare användning löser PHP-sessionen detta problem (t.ex. användarnamn, köpta varor osv.). Men sessionens information är tillfällig och tas bort när användaren lämnar webbplatsen. Om du behöver permanenta lagring kan du lagra data i en databas.

Så fungerar sessionen: skapar en unik id (UID) för varje besökare och lagrar variabler baserat på denna UID. UID lagras i en cookie eller överförs via URL.

Starta PHP Session

Innan du lagrar användarinformation i PHP-sessionen måste du först starta sessionen.

注释:session_start()-funktionen måste vara innan <html>-taggen:

<?php session_start(); ?>
<html>
<body>
</body>
</html>

Ovanstående kod registrerar användarens session på servern, så att du kan börja spara användarinformation, och en UID tilldelas användar sessionsen.

Lagra Sessionens Variabler

Det korrekta sättet att lagra och hämta sessionens variabler är att använda PHP $_SESSION-variabeln:

<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>

输出:

页面浏览量=1

在下面的例子中,我们创建了一个简单的页面浏览计数器。isset() 函数检测是否已设置 "views" 变量。如果已设置 "views" 变量,我们累加计数器。如果 "views" 不存在,则我们创建 "views" 变量,并将其设置为 1:

<?php
session_start();
if(isset($_SESSION['views']))
  $_SESSION['views']=$_SESSION['views']+1;
else
  $_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
?>

终结 Session

如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。

unset() 函数用于释放指定的 session 变量:

<?php
unset($_SESSION['views']);
?>

您也可以通过 session_destroy() 函数完全终止 session:

<?php
session_destroy();
?>

注释:session_destroy() 将重置 session,您将失去所有已存储的 session 数据。