在 PHP 中记录关于 session 的学习笔记
发布时间:2023-11-13 16:48:05 所属栏目:PHP教程 来源:
导读:使用PHP应用session时,将session中的数据存储在服务器上,然后通过客户端传来的sessionID识别客户端的信息,并提取信息。
自己的一个实例
代码如下
1
session_start();//启动会话session,在sessio
自己的一个实例
代码如下
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的备份文件,并将其存储到该目录中。 (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐