PHP会话

介绍:

会话是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值