当用户通过客户端浏览页面初始化了Session之后(如:添加购物车,用户登陆等),服务器会将这些session数据保存在:Windows保存在C:\WINDOWS\Temp的目录下,Linux则是保存在/tmp 或 /var/lib/php/session目录下,之后给客户端返回一个Set-Cookie的参数(该参数表示在服务器端创建的Session_ID,可在http协议中看到),当该服务器的其他web端需要Session数据时则客户端会向服务器发送这个Session_ID,服务器就可以从Session文件中查找并调用;

  如果当用户在客户端禁用Cookie之后,如何实现Session共享多个页面;URL重写则可以解决;

  可以使用PHP提供的一个常量SID;这个常量可以获取到当前客户端在服务器所创建的Session文件的session_ID(文件名);使用方法;

    第一种方法,在超链接,action,header可以直接拼接将ID传递给需要session数据的页面,同时需要在页面写判定当读取到SID存在时则使用当前SID,若无则在服务器重新session_start()一个新的Session文件;

    if(isset($_GET[ ' SID ' ])){

      session_id($GET_[ ' sid ' ];

    }

    session_start();

    第二种方法,可以在php.ini文件中找到session.use_trans_sid = 1 ;来指定是否启用透明SID,启用之后在超链接,action,header,会自动将SID传递,设置完成重启apache生效;

  使用Session验证码技术;

    要想使用Session的验证码技术,首先要启用PHP自带的绘图库,应该在php.ini文件目录下启用 extension=php_gd2.dll ,重启apache生效;

    首先在需要验证码的界面加上输入文本框和图片,图片会请求checkCode页面随机生成一个验证码,并且写上点击随机更换的代码;

    

    其次在checkCode页面生成4个随机数并组合成字符串,通过PHP的绘图技术随机添加背景色干扰线以及随机生成的字符串,最后生成图片返回给客户端页面,并将生成的四位随机数保存在Session中;

    

  当输入验证码进行验证时,在验证页面写一个判断语句,判断文本框输入的值是否不等于$_Session[ " mycheckCode " ];

  这只是一个简单的案例,如今的验证码技术也是各有千秋,破解验证码的技术也平分秋色,验证码也就是阻挠一小拨别有用心的人;

  

关于用户禁用Cookie的解决办法和Session的图片验证码应用的更多相关文章

  1. php开发面试题---禁用cookie之后,如何使用session

    php开发面试题---禁用cookie之后,如何使用session 一.总结 一句话总结: 在每个url后面自动加上PHPSESSID的值即可,用户禁止cookie后,服务器仍会将sessionId以 ...

  2. 浏览器禁用cookie后php如何保持session会话-use_trans_sid机制

    原文:浏览器禁用cookie后php如何保持session会话-use_trans_sid机制 为防止浏览器禁用cookie导致服务器会话无法保持,php开发了一个机制,该机制开启后,浏览器发起请求后 ...

  3. PHP--浏览器禁用cookie后,怎么使用session

    sessionid是存储在cookie中的,解决方案如下: Session URL重写,保证在客户端禁用或不支持COOKIE时,仍然可以使用Session session机制.session机制是一种 ...

  4. session机制,浏览器禁用cookie后,怎么使用session

    sessionid是存储在cookie中的,解决方案如下: Session URL重写,保证在客户端禁用或不支持COOKIE时,仍然可以使用Session session机制.session机制是一种 ...

  5. Windows200864位操作系统下的SQLPLUS.EXE 无法找到入口解决办法和Oracle环境变量的设置

    本机环境:Windows2008 64位中文版操作系统+Oracle11G+安装了Oracle32位和64位客户端驱动 问题起源:Path环境变量被360安全卫士优化修复后,整个给清空了,hosts文 ...

  6. 【Android】eclipse打不开的解决办法和“Jar mismatch! Fix your dependencies”的解决

    JDK1.7能用,cmd下输入java,javac,java -version,javaw配置和环境都没问题的话,有可能是工作空间的问题,就是一般在D盘下的workspace..那个文件夹,删除了,再 ...

  7. CentOS 7出现Failed to start firewalld.service: Unit is masked的解决办法和firewalld 防火墙开关

    说明:刚刚使用systemctl start firewalld命令开启防火墙的时候,却开不成功,出现Failed to start firewalld.service: Unit is masked ...

  8. Java Web 禁用Cookie对Session的影响

    如果客户端禁用了Cookie,那么服务端就不能得到Session了.因为通过Session ID来确定当前会话对应的服务端Session,而Session ID通过Cookie来传递,所以禁用Cook ...

  9. php在客户端禁用cookie时让session不失效的解决方法

    cookie固然好,不过有些客户端浏览器会禁用cookie,这就会导致你所依赖cookies的程序会失效或出错,那么若真出现用户关闭cookies的情况,PHP应该如何再次使用session?方法还是 ...

随机推荐

  1. (转)基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用

    http://www.cnblogs.com/wuhuacong/p/4761637.html 在上篇<基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JST ...

  2. console.log、toString方法与js判断变量类型

    Java调用system.print.out()是会调用toString方法打印js里的console.log也是控制台打印,很多时候,我们以为也是调用toString方法,其实并不是.我们在chro ...

  3. Apache2.2 启动和停止命令

    1.启动:net start apache2.2 2.停止:net stop apache2.2

  4. BZOJ 1864: [Zjoi2006]三色二叉树 树形DP + 读入

    Description Input 仅有一行,不超过500000个字符,表示一个二叉树序列. Output 输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色. 题解:本题大水 ...

  5. Linux 中, 安装html转pdf工具:wkhtmltopdf

    wkhtmltopdf下载地址官网:https://wkhtmltopdf.org/downloads.html 进入到/opt文件夹下面,新建文件夹wkhtmltopdf,然后把下载好的wkhtml ...

  6. luogu P4726 多项式指数函数(模板题FFT、多项式求逆、多项式对数函数)

    手动博客搬家: 本文发表于20181127 08:39:42, 原地址https://blog.csdn.net/suncongbo/article/details/84559818 题目链接: ht ...

  7. MySQL命名、设计及使用规范《MySQL命名、设计及使用规范》

    数据库环境 dev:开发环境,开发可读写,可修改表结构.开发人员可以修改表结构,可以随意修改其中的数据但是需要保证不影响其他开发同事. qa:测试环境,开发可读写,开发人员可以通过工具修改表结构. s ...

  8. Android ContextMenu的使用

    ContextMenu介绍: 假设一个View注冊了上下文菜单.那么当长按该View时便会弹出一个浮动菜单,来供选择下一步操作. 实现这个功能须要调用setOnCreateContextMenuLis ...

  9. 用Thinphp发送电子邮件的方法

    好长时间没有动php了,突然想用thinkphp发送电子邮件,可是查阅了书籍都写的非常乱.没有继续看下去.这里找到了一个比較好的方法: 第一步:首先我们要引入一个外部类库:Mail.class.php ...

  10. BZOJ 2631 tree 动态树(Link-Cut-Tree)

    题目大意:维护一种树形数据结构.支持下面操作: 1.树上两点之间的点权值+k. 2.删除一条边.添加一条边,保证加边之后还是一棵树. 3.树上两点之间点权值*k. 4.询问树上两点时间点的权值和. 思 ...