会话是Web开发人员中最简单,功能更强大的工具之一。 该工具在动态网页开发中非常宝贵,它是每个开发人员都需要知道如何使用的工具之一。
本文介绍了PHP会话的基础。
假设:必须具备基本的PHP知识(变量,数组等)
HTML表单。
什么是会议?会话是一种存储数据的方式。 在开发交互式Web应用程序时,我们经常发现自己需要一个安全的位置来放置某些信息,例如用户ID和名称。 每次刷新或重定向浏览器时,它都不会丢失。 这正是Sessions所做的。 它们将您的数据存储在服务器上,因此您可以随时从任何服务器端脚本中访问它们。
为了使之成为可能,在服务器上创建了一个文件,该文件链接到一个SessionID,该SessionID会作为cookie或通过URL作为GET数据生成并发送到浏览器。
然后,每当刷新/重定向浏览器时,服务器端代码都会读取此SessionID,并将存储在文件中的信息加载到服务器上。
我为什么要使用会话?此工具有无限可能的用途。 它通常用于跟踪用户信息,例如用户名和用户ID。
例如,如果您查看“字节”页面的顶部,则当前处于打开状态。 如果登录,您将看到欢迎消息和一些用户控件。 无论您在Bytes网站上的什么位置,这些字段都将保持不变。 为了使之成为可能,您的用户信息必须存储在安全的地方,服务器端脚本可以在该地方读取它。 这就是Sessions存在的根本原因,以使此类事情成为可能。
如何使用会话?在PHP中使用会话非常简单。 首先,您需要告诉您的脚本您将要使用Sessions。
这是通过调用start_session()函数完成的。 此功能将创建一个新会话或重新打开一个现有会话。 由于此功能需要将标头数据发送到浏览器,因此必须在发送任何输出之前调用它。
告诉浏览器使用会话后,您可以通过调用$ _SESSION超级全局变量来访问会话数据。 这是一个数组,其工作原理几乎与其他任何PHP数组一样。 您可以像添加普通数组一样添加,编辑,读取和取消设置其字段。
这是一个如何创建会话并使用$ _SESSION数组的小例子:
// Start the session
session_start();
// Create a session variable
$_SESSION['MyVar'] = "This is my session variable";
// Use the session variable
echo "MyVar: ". $_SESSION['MyVar'];
// Edit a session variable
$_SESSION['MyVar'] = "I just edited my first variable";
// Delete a session variable
unset($_SESSION['MyVar']);
在$ _SESSION数组中设置字段后,网络上的任何服务器端脚本都可以使用该字段,直到关闭浏览器或手动取消设置该字段为止。
一个简单的例子:
在本文的前面,我谈到了使用Session存储用户数据。 这个小例子展示了如何收集用户信息并将其存储在PHP Session数组中。
它只是通过HTML表单向用户询问用户名,并将其添加到会话中。 然后,当用户登录后,它会显示一条欢迎消息,并为用户提供注销的选项。 如果用户选择注销,则只需取消设置“会话”字段即可。 有效地注销用户。
<?php
// Start the session
session_start();
// Check if a username is stored in the session
if(isset($_SESSION['Username']))
{
// Check if the user has pressed the logout link
if(isset($_GET['logout']))
{
// Unset the SESSION variable Username
unset($_SESSION['Username']);
echo "You have been logged out <br /> <a href='?'>Continue</a>";
}
else
{
// Print the weclome message
$sUsername = htmlentities($_SESSION['Username']);
echo "Your are signed in as '{$sUsername}'<br /><a href='?logout=true'>Logout</a>";
}
}
else
{
// Check If the user has posted any data
if(isset($_POST['Username']))
{
// Set the SESSION variable Username
$_SESSION['Username'] = $_POST['Username'];
echo "You have been logged in! <br /><a href='?'>Continue</a>";
}
else
{
// Print the login form
echo '
<form action="?" method="post">
Username: <input name="Username" type="text" /><br />
<input type="submit" value="Login" />
</form>';
}
}
?>
From: https://bytes.com/topic/php/insights/644923-php-sessions