memcache课程---4、php+memcache如何让用户跨域登录

一、总结

一句话总结:

让所有服务器共用一台memcache缓存,即可达到跨域的目的
1、session跨域:修改php配置文件,使session保存到memcache服务器上去,这样登录的话session信息就保存到memcache服务器上面去了;不同服务器修改的php的配置文件都指向同一个memcache服务器,比如tcp://192.168.20.1:11211
2、cookie跨域:因为cookie里面带sessionid,默认不是本人带正确的卡不认,所以可以在跨域的入口链接中带上sessionid
php怎么把session存到memcache服务器上面去(这样可以实现session跨域)
php.ini配置文件修改(支持memcache)
session.save_handler = memcache
session.save_path = "tcp://192.168.20.1:11211“ cookie跨域如何实现(cookie默认是相当于本人带正确的卡才得行)
本质是通过memcache保存且共享了session_id信息
1、强制在跨域的入口链接中带上了session_name()这个参数,所以可以$_GET取
2、在memcache中根据session_name()对应的session_id取session数据即可(先存了)
3、将这个session_id存入cookie,便于网站的不同位置需要sessionid的时候使用

1、memcache用户跨域登录解决的是什么问题(举例)?

不同服务器上请求资源:网站既向linux服务器请求资源,又向windows服务器请求资源,默认情况登录的session不共享,所以用户需要登录多次很麻烦

2、php怎么把session存到memcache服务器上面去(这样可以实现session跨域)?

不同服务器修改php.ini配置文件已支持memcache
session.save_handler = memcache
session.save_path = "tcp://192.168.20.1:11211“

3、php默认把session存为什么文件,放在哪?

到php的配置文件中去找session
默认是存为文件:session.save_handler = files
存储地址:session.save_path="D:\software\coding\php\phpstudy\PHPTutorial\tmp\tmp"

4、cookie跨域如何实现(cookie默认是相当于本人带正确的卡才得行)?

本质是通过memcache保存且共享了session_id信息,来找到session的信息
1、强制在跨域的入口链接中带上了session_name()这个参数,所以可以$_GET取
2、在memcache中根据session_name()对应的session_id取session数据即可(先存了)
3、将这个session_id存入cookie,便于网站的不同位置需要sessionid的时候使用
项目入口文件设置
$mem=new Memcache;
$mem->connect("192.168.20.1","10000");
$sessid=$_GET[session_name()];//强制在链接中带上了这个参数,所以可以$_GET取
$_SESSION=$mem->get($sessid.'_data');
setcookie(session_name(),$sessid,0,'/');//比如linux除了进门需要卡号,其它位置也需要,所以存进session 存session_id到memcache服务器
$mem=new Memcache;
$mem->connect("192.168.20.1","10000")
$mem->set(session_id().'_data',$_SESSION);

二、内容在总结中

 

最新文章

  1. Xcode 必备插件管理器 http://alcatraz.io
  2. zendstudio 声明变量类型,让变量自动方法提示
  3. 大话数据结构(十)java程序——队列
  4. AngularJS(8)-指令directive
  5. c# Oracle 远程连接方式 plsql 连接oracle 11g 64位
  6. 问题-Tbutton(sender) 与 (sender as Tbutton) 等价吗?
  7. linux —— 编译linux内核
  8. Android简单发送邮件(可带附件)
  9. layer,Jquery,validate实现表单验证,刷新页面,关闭子页面
  10. websocket-php
  11. [Day22]IO(File、递归)
  12. MVC 之 System.Web.Optimization找不到引用
  13. 在openerp撰写消息中增加图片
  14. update 操作用法
  15. spring boot docker 初尝试
  16. Javascript一个在页面内追加元素的小例子
  17. JavaScript document和window属性及方法详解
  18. shell实现增加删除Linux系统用户脚本(密码为随机)
  19. hadoop集群搭建namenode无法启动问题
  20. c#网络传输

热门文章

  1. 11-MySQL-Ubuntu-数据表中数据的删除(四)
  2. Datagrid 的 SelectItem 和 SelectValue 如何区分、DataContext 和 ItemSource 在绑定时该绑哪个?
  3. Java 仓储模式
  4. 论文学习02-《On the Effectiveness of Visible Watermarks》
  5. sql(11) sum
  6. Python 学习杂项
  7. 分享一些PPT模板
  8. VS2010-MFC(字体和文本输出:文本输出)
  9. System.Web.Mvc.ControllerBase.cs
  10. Python 迭代器与生成器及装饰器