加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在 PHP 中记录关于 session 的学习笔记

发布时间:2023-11-13 16:48:05 所属栏目:PHP教程 来源:
导读:使用PHP应用session时,将session中的数据存储在服务器上,然后通过客户端传来的sessionID识别客户端的信息,并提取信息。

自己的一个实例

代码如下

1

session_start();//启动会话session,在sessio
使用PHP应用session时,将session中的数据存储在服务器上,然后通过客户端传来的sessionID识别客户端的信息,并提取信息。
 
自己的一个实例
 
 代码如下
 
1
 
session_start();//启动会话session,在session必须启动
 
$_SESSION['name']=”fangshan”;//设置session,name的值为fangshan
 
?>
 
next
 
2 (以上另存为session.php)
 
3
 
session_start();//启动会话
 
if(isset($_SESSION['name']))//判断是否存在
 
{
 
 echo $_SESSION['name'];
 
 echo “del session”;
 
}
 
else
 
{
 
 echo “Session has not been setted”;
 
}
 
?>
 
4 (以上另存为session2.php)
 
5
 
session_start();//启动session
 
unset($_SESSION['name']);//注销session变量
 
session_destroy();//清除session ID
 
header(“Location:session2.php”);//跳转回前面页面
 
?>
 
6 (以上另存为deletesession.php)
 
session的常用操作:
 
session的写入、读取、注册与删除。
 
session的开始
 
标记session使用开始的函数是session_start,session_start函数用于初始化session变量。语法如下:
 
session_start();
 
返回值为TRUE。
 
session的写入和读取
 
在PHP中,session的使用是通过预定义数组$_SESSION的调用和读取来完成。
 
在网站的页面中,在注册页面对$_SESSION数组进行赋值,在其他的页面中对$_SESSION数组进行读取。
 
注册页面中的session,例如:
 
 代码如下
 
1
 
session_start();
 
$_SESSION['keyword']= "php";
 
?>
 
其他页面中的session,例如:
 
 代码如下
 
1
 
session_start();
 
echo $_SESSION['keyword'];
 
?>
 
依次运行,
 
session的检测与注销
 
还记得isset和unset函数吗?这两个函数分别实现session的检测与注销。
 
isst函数用于检测session是否已经被存在,语法如下:
 
bool isset($_SESSION['session_name'])
 
例如:
 
 代码如下
 
1
 
session_start();
 
if(isset($_SESSION['keyword']))
 
 echo $_SESSION['keyword'];
 
 else
 
  echo "www.111com.net";
 
?>
 
usset函数用于注销已经建立的session变量。语法如下:
 
unset($_SESSION['session_name']))
 
例如:
 
 代码如下
 
1
 
session_start();
 
unset($_SESSION['keyword']);
 
if(isset($_SESSION['keyword']))
 
  echo $_SESSION['keyword'];
 
  else
 
   echo "www.111com.net";
 
?>
 
Php处理会话的函数一共有10个,我们详细介绍一下将要用到几个函数。
 
1、 session_start
 
函数功能:开始一个会话或者返回已经存在的会话。
 
函数原型:boolean session_start(void);
 
返回值:布尔值
 
功能说明:这个函数没有参数,且返回值均为true。最好将这个函数置于最先,而且在它之前不能有任何输出,否则会报警,如:Warning: Cannot send session cache limiter - headers already sent (output started at /usr/local/apache/htdocs/cga/member/1.php:2) in /usr/local/apache/htdocs/cga/member/1.php on line 3
 
2、 session_register
 
函数功能:登记一个新的变量为会话变量
 
函数原型:boolean session_register(string name);
 
返回值:布尔值。
 
功能说明:这个函数是在全局变量中增加一个变量到当前的SESSION中,参数name就是想要加入的变量名,成功则返回逻辑值true。可以用$_SESSION[name]或$HTTP_SESSION_VARS[name]的形式来取值或赋值。
 
3、 session_is_registered
 
函数功能:检查变量是否被登记为会话变量。
 
函数原型:boobean session_is_registered(string name);
 
返回值:布尔值
 
功能说明:这个函数可检查当前的session之中是否已有指定的变量注册,参数name就是要检查的变量名。成功则返回逻辑值true。
 
4、 session_unregister
 
函数功能:删除已注册的变量。
 
函数原型:boolean session_session_unregister(string name);
 
返回值:布尔值
 
功能说明:这个函数在当前的session之中删除全局变量中的变量。参数name就是欲删除的变量名,成功则返回true.
 
5、 Session_destroy
 
函数功能:结束当前的会话,并清空会话中的所有资源。
 
函数原型:boolean session destroy(void);
 
返回值:布尔值。
 
功能说明:这个函数结束当前的session,此函数没有参数,且返回值均为true
 
上面介绍函数下文将会用到,但还有一些有关session的函数也介绍一下:
 
6、 session_encode
 
函数功能:sesssion信息编码
 
函数原型:string session_encode(void);
 
返回值:字符串
 
功能说明:返回的字符串中包含全局变量中各变量的名称与值,形式如:a|s:12:"it is a test";c|s:4:"lala"; a是变量名 s:12代表变量a的值"it is a test的长度是12 变量间用分号”;”分隔。
 
7、 session_decode
 
函数功能:sesssion信息解码
 
函数原型:boolean session_decode (string data)
 
返回值:布尔值
 
功能说明:这个函数可将session信息解码,成功则返回逻辑值true
 
8、 session_name
 
函数功能:存取当前会话名称
 
函数原型:boolean session_name(string [name]);
 
返回值:字符串
 
功能说明:这个函数可取得或重新设置当前session的名称。若无参数name则表示获取当前session名称,加上参数则表示将session名称设为参数name
 
9、 session_id
 
函数功能:存取当前会话标识号
 
函数原型:boolean session_id(string [id]);
 
返回值:字符串
 
功能说明:这个函数可取得或重新设置当前存放session的标识号。若无参数id则表示只获取当前session的标识号,加上参数则表示将session的标识号设成新指定的id
 
10、 session_unset
 
函数功能:删除所有已注册的变量。
 
函数原型:void session_unset (void)
 
返回值:布尔值
 
功能说明:这个函数和Session_destroy不同,它不结束会话。就如同用函数session_unregister逐一注销掉所有的会话变量。
 
  安装Docker和Docker-Compose
 
  要使用Docker容器运行数据库,首先需要安装Docker和Docker-Compose。可以使用以下命令在Linux系统中安装它们:
 
  $ sudo apt-get update
 
  $ sudo apt-get install docker.io
 
  $ sudo systemctl start docker
 
  $ sudo systemctl enable docker
 
  $ sudo apt-get install docker-compose
 
  复制代码
 
  创建Docker容器
 
  接下来,我们需要创建一个Docker容器,以存储和运行我们的数据库。在这里,我们以MySQL为例。我们可以使用以下命令在Docker中下载和启动MySQL容器:
 
  $ docker run --name mysql -e MYSQL_ROOT_PASSWORD=your_password -d mysql
 
  复制代码
 
  这会在Docker中创建一个名为mysql的容器,并将其映射到本地的MySQL服务器。变量MYSQL_ROOT_PASSWORD是必需的,并设置为MySQL的root用户密码。通过Docker查找并下载具有最新版本的MySQL映像的过程可能需要一些时间。
 
  数据库备份
 
  在容器化环境中,我们需要定期备份数据库以确保数据的安全性。 我们可以编写一个PHP脚本来备份MySQL数据库。以下是一个示例脚本:
 
  <?php
 
  $backup_file = '/backup/mysql_' . date("Y-m-d_H-i-s") . '.sql.gz'; // 定义备份文件名称
 
  $command = "mysqldump -u root -p'your_password' --all-databases | gzip > $backup_file"; // 执行备份的命令
 
  system($command);
 
  ?>
 
  复制代码
 
  此脚本使用mysqldump命令备份MySQL数据库。备份文件名称包括当前日期和时间,以便在备份时保留多个备份。备份文件还使用gzip命令进行压缩以减少存储空间。命令中的“your_password”应该被替换为您的MySQL root密码。
 
  数据库恢复
 
  如果MySQL数据库出现故障,我们需要能够轻松地恢复从备份中备份的数据。以下是一个PHP脚本,可用于从备份文件中还原MySQL数据库。
 
  <?php
 
  $backup_file = '/backup/mysql_2022-01-01_01-01-01.sql.gz'; // 定义备份文件名称
 
  $command = "gunzip < $backup_file | mysql -u root -p'your_password'"; // 执行恢复的命令
 
  system($command);
 
  ?>
 
  复制代码
 
  此脚本使用gunzip命令从备份文件中解压缩数据,并使用mysql命令将其还原到MySQL服务器中。命令中的“your_password”应该被替换为您的MySQL root密码。
 
  定时自动备份
 
  要确保MySQL数据库备份是最新且可靠的,我们需要定期自动备份。以下是一个PHP脚本,它将定期执行备份脚本,并将其存储到指定的位置。
 
  <?php
 
  $backup_dir = '/backup'; // 定义备份存储位置
 
  if (!file_exists($backup_dir)) {
 
      mkdir($backup_dir, 0777, true); // 如果备份位置不存在,则需要创建
 
  }
 
  $backup_file = $backup_dir . '/mysql_' . date("Y-m-d_H-i-s") . '.sql.gz'; // 定义备份文件名称
 
  $command = "mysqldump -u root -p'your_password' --all-databases | gzip > $backup_file"; // 执行备份的命令
 
  system($command);
 
  ?>
 
  复制代码
 
  此脚本将在指定的目录中创建一个名为mysql_YYYY-MM-DD_HH-MM-SS.sql.gz的备份文件,并将其存储到该目录中。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章