本文转自:https://blog.csdn.net/weixin_29130369/article/details/111922231?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242 前面谈过session相关配置,在开发的时候,常需要跨域共用session的是登录模块,我相信很多开发的朋友的都遇到过,只需要一个地方登录,相关联的网站也是处于登录状态。两种情况:一种9streets.cn和a.9streets.cn之间,另一种是a.com b.com之间,这几天总结了一下处理方法。 无论是一二级域名,和不同域名下的跨域,无非要达到两点: 客户端访问同一个sessionId, 所有域名对应的服务器访问的session的数据的位置必须一致。 1.访问共同的sessionId主要是通过把当前的sessionId写进cookie里面 cookie在不同域名下是不能访问的,我们需要在访问在后台设置用户在登录的时候,把需要共用的登录信息的域名,如果是在1,2级域名下,直接把cookie设置为所属主域名,例如: setcookie(“session_id”,session_id(),time()+3600*24*365*10,”/”,”.a.com”); 也许你会问:如果是在不同的域名呢?采用P3P技术简单解决,实现原理,在访问网站x.com的时候,y.com程序触发y.com文件的写入sessionid值,sessionid值便可以获取,然后把seesion值存入数据库,取相同的sessionid值便可。这就要求y.com里面的程序文件必需能跨域访问,默认情况下,浏览器是不能跨域设置cookie的,加上p3p头后才行。在对应php文件加上:header(‘P3P: CP=”CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”‘); 2.session数据存储位置一致的实现方法 session该数据默认情况下是存放在服务器的tmp文件下的,是以文件形式存在,而非存储在服务器的内存中,在这里我们得修改为所有域下都能访问的方式。网上介绍了数据库存储,文件形式存储,内存存储, 如果用数据库存储session数据,网站的访问量很大的话,SESSION 的读写会频繁地对数据库进行操作,效率就会明显降低,可以考虑存在内存服务器来实现,下面的session.rar里面介绍的是数据库存session的实例。 在yii2下 处理这中问题,根据网上搜到的教程 终配置成功教程如下: 然后配置User 和 Session: 这里在配置项的user和session里 我把domain写死了例如:’domain’=>’.baidu.com’,这样就不用判断了. 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
本文转自:https://www.yiichina.com/tutorial/1110 在控制器index方法里加上一段 如果需要做权限控制之类的,修改提交地址不想直接放在index方法,可以自定义提交地址,加上editableOptions参数即可
Yii2的定时任务可以有两种写法,原理都是通过服务器的定时任务去调用 1.通过调用指定的URL访问 就相当于在浏览器中访问 2.通过console调用 下面我们就来说说Console 是如何实现定时任务的 一、首先在创建Controlle 并继承 yii\console\Controller; 在yii根目录下,命令行执行 yii test/index 如果是class AaaBbbController function ActionAaaBbb yii aaa-bbb/aaa-bbb linux下,运行crontab -e 30 21 * * * /usr/local/php/bin/php /your_project_path/yii test/test 二、用命令行cmd测试是否成功 (一定要看好路径去执行 yii 这个文件 一定要写绝对路径) /你的文件夹路径/yii 你的文件夹路径/console/test(控制器)/index(方法) 或者进入的你的项目目录下,例如 D:\wamp\www\smartSPACE>yii crontab/copy-db,你需要配置你的php环境变量 下例为 在console文件夹下执行控制器和方法 三、设置定时任务 linux下,运行crontab […]
Yii2-redis 不用 composer 的安装由于 composer 是国外的源,所以用下面的方式很难成功php composer.phar require –prefer-dist yiisoft/yii2-redis 改成手动安装redis1、下载 yii2-redis 的文件https://github.com/yiisoft/yii2-redis/archive/master.zip改文件夹名为 yii2-redis,放到 vendor\yiisoft 目录下 2、编辑文件vendor\yiisoft\extensions.php:‘yiisoft/yii2-redis’ => array ( ’name’ => ‘yiisoft/yii2-redis’, ’version’ => ‘2.0.14.0’, ’alias’ => array ( ’@yii/redis’ => $vendorDir . ‘/yiisoft/yii2-redis/src’, ), ), 3、编辑文件vendor\composer\autoload_psr4.php,加入:‘yii\\redis\\’ => array($vendorDir . ‘/yiisoft/yii2-redis/src’), […]