关于用户禁用Cookie的解决办法和Session的图片验…

2018-06-22 05:38:27来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

  当用户通过客户端浏览页面初始化了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 " ];

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

 

 

 

  

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ThinkPHP5微信扫码支付

下一篇:PHP / Laravel 月刊 #23