先看看下面的代码:
<?php session_start(); $_SESSION['username']='lucy'; ?>
当我们请求访问上面的脚本,默认会在我们的客户端生成一个名为PHPSESSID的cookie,我这里的值是PHPSESSID=e447hc9kpn6h44i58aj2931cu2;
我们去服务器端查看session文件保存的位置发现已经创建一个名为sess_e447hc9kpn6h44i58aj2931cu2的session文件;
打开sess_e447hc9kpn6h44i58aj2931cu2这个session文件看到其中的内容是:username|s:4:"lucy";
通过以上我们可以看到session是依赖于cookie的,服务器端是根据http请求头中PHPSESSID来找到对应的session文件进行处理的,那么是不是cookie禁用后session就无法使用了,事实上cookie禁用session依然可以用,只需要开启php.ini中的session.use_trans_sid = 1配置即可
//$ak开发密钥,$cityname城市名称(支持省县乡详细地址) public function getposition($ak,$cityname){ $callback=array('lng'=>0,'l...
ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...
<?php //php7+ define('CONFIG', [ 'MYSQL' => '127.0.0.1',  ...
使用openssl扩展对应替换mcrypt的函数,(比较麻烦,但是openssl是未来趋势)在新版php中编译mcrypt扩展使用一个纯php代码实现的mcrypt扩展库,git地址为https://github.com/phpseclib/mcrypt_compat,每个mcrypt的方法都已经实...
为什么使用队列?因为pop取队列具有原子性。假如我们需要秒杀一个商品id,我们先将商品的库存保存到一个队列。例如:<?php $redis = new Redis(); $redis->connect('127.0.0.1', 6...
本教程使用的定时任务基于EasyTak,EasyTask官方文档:https://gitee.com/392223903/EasyTask由于tp3.2.x官方开发未考虑命令行支持和绝对路径开发的标准,因此我编写了一个支持的类来运行。1.在tp3.2.3根目录下安装easytaskcomposer&...