http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 9219|回复: 3

[PHP] PHP中的Session与Cookie(1)

[复制链接]
发表于 2018-12-19 09:19:31 | 显示全部楼层 |阅读模式
本帖最后由 惜 于 2018-12-19 09:19 编辑

常用的 Session 相关函数

函 数 名作 用 参数及返回值
session_start(void)此函数初始化一个新的Session,
若该客户已在Session之中,则连上原有的Session
该函数没有参数,且返回值均为True。
需要注意的一点是,在session_start()函数之前不能有任何的内容输出,否则就会发生错误
session_destroy(void) 此函数结束目前的Session与session_start()函数一样,session_destroy()函数也没有参数,
且返回值也均为True
session_name(string [name])本函数可取得或者重新设定目前Session的名称 若无可选参数name则表示单单获取目前Session名称,
加上参数则表示将Session名称设为参数name
session_module_name(string [module])本函数可取得或者重新设定目前Session的模组 若无可选参数module则表示只获取目前Session的模组,
加上参数则表示将Session模组设为参数module
session_save_path(string [path])本函数可取得或者重新设定目前存放Session的路径 若无可选参数path则表示只有取得目前Session的路径目录名,
加上参数path则表示将Session存在新的路径上
session_id(string [id])函数本函数可取得或者重新设定目前存放Session的代号 若 无 参 数 id 则 表 示 只 有 取 得 目 前Session的代号,
加上参数则表示将Session代号设成新指定的id。输入及传回均为字串
session_register(string name)本函数在全局变量中增加一个变量到目前的Session之中 参数name为欲检查的变量名。如果注册则返回True,反之则返回False
session_unregister(string name)本函数与session_register()函数相反为,
功能是在目前的Session之中删除全局变量上的变量
参数name即为欲删除的变量名。成功则返回True值,反之则返回False
session_is_registered(string name) 本函数可以检查某个变量名是否已经被注册为Session参数name为欲检查的变量名。如果注册则返回True,反之则返回False
session_decode(string data) 本函数可将Session内的资料解码 参数data即为欲解码的资料。成功则返回True值,否则返回False
session_encode(void)本函数可将Session资料编码,编码以ZEND引擎做杂凑编码 本函数没有参数。成功则返回True值,否则返回False

[PHP] 纯文本查看 复制代码
<?php session_start(); ?>
<html>
<head>
<title>session 使用实例</title>
</head>
<body>
        <?php
                $count = $_SESSION["usercount"];
                
                echo "<br>";
                if($count == ""){
                        $_SESSION["usercount"] = 1;
                        echo $_SESSION["usercount"];
                }else{
                        $count = $count + 1;
                        $_SESSION["usercount"] = $count;
                        echo $count;
                }
        ?>
</body>
</html>

使用 Session 的注意事项


如果在 PHP.ini 文件中启用了 session.auto_start,就不能将对象放入会话中,因为类定义必须在启动会话之前加载以在会话中重建对象

请求结束后所有注册的变量都会被序列化。已注册但未定义的变量被标记为未定义。在此后的访问中这些变量也不会被会话模块定义,除非用户以后定义它们。

另外有些类型的数据不能被序列化,因此也就不能保存在会话中。包括 resource 对象类型变量或者有循环引用的对象(即某对象将一个指向自己的引用传递给另一个对象)。

默认情况下,所有与特定会话相关的数据都被存储在由 php.ini 文件的 session.save_path 选项所指定的目录下的一个文件中。对每个会话建立一个文件(不论是否有数据与该会话相关)。这是由于每打开一个会话即建立一个文件,不论是否有数据写入到该文件中。注意由于和文件系统协同工作的限制,此行为有个副作用,有可能造成用户定制的会话处理器(例如用数据库)丢失未存储数据的会话。

如果 php.ini 的配置没有开启 register_globals,则只可以用_SESSION 数组来引用 Session 变量。如,注册的$var 变量只能这样引用“$_SESSION["var"]”。而如果开启了 register_globals 选项,则可以直接使用$var。

由于 Cookie 存在于客户端,所以它可以被设置为长时间甚至是无限期存在。而 Session 因为是存储在服务器端,所以它的生命期很短。注册过的变量过段时间就会自动失效。



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2018-12-19 12:10:31 | 显示全部楼层
看到这帖子真是高兴!
发表于 2018-12-19 15:44:40 | 显示全部楼层
强烈支持楼主ing……
发表于 2018-12-19 16:23:59 | 显示全部楼层
激动人心,无法言表!
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-22 19:38

© 2014-2021

快速回复 返回顶部 返回列表