php每分钟刷新一次的验证码,php如何在进入页面的时候自动刷新一次验证码
页面直接进入login页面的时候无法获取到$_SESSION["auth"]值,只能刷新一次验证码才能获取到值,怎么才能在用户访问的时候自动刷新一次验证码,求大神支招。。。
验证码
回复讨论(解决方案)
哪里获取到$_SESSION["auth"]值?
if(!empty($_GET["action"]))$post=$_GET;else$post=$_POST;if(!empty($_GET['forward'])&&strpos($_GET['forward'],'script')>0)header("Location:login.php");//全if(!empty($post["action"])&&$post["action"]=="submit"){include_once("includes/global.php");include_once("includes/smarty_config.php");include_once("config/reg_config.php");if(strtolower($_SESSION["auth"])!=strtolower($post["randcode"])&&empty($post['first_index'])&&empty($post['connect_id'])){header("Location: login.php?erry=-3");//证exit();}
直接访问login.php页面$_SESSION["auth"]会为空,如果是从主页访问然后到登录页面$_SESSION["auth"]就会得到验证码的值
$_SESSION["auth"] 是由 rand_func.php 产生的
直接进入本身就不会有验证码,因为不是提交过来的
为什么刷新一次验证码验证码就会提交过来?怎么才能进入登录界面就提交呢?
像斑竹说的,session设置是发生在用户下载页面后请求验证码图片时,第一次请求php当然看不到验证码~
而且我对你的问题理解有点歧义...你是说第一次 访问login页面想获取到session,还是说第一次 提交验证码时获取不到session?
另外验证码的url最好加个随机数防止缓存,包括js换验证码图片的那个函数
估计是图片缓存问题。
改成这样看看。
当我访问登录页面的时候$_SESSION["auth"]的值为空
下面是验证码代码width=$width; $this->height=$height; $this->codenum=$codenum;}function outImg(){ //输出头 $this->outFileHeader(); //产生验证码 $this->createCode(); //产生图片 $this->createImage(); //设置干扰像素 $this->setDisturbColor(); //往图片上写验证码 $this->writeCheckCodeToImage(); imagepng($this->checkimage); imagedestroy($this->checkimage);}private function outFileHeader(){ header ("Content-type: image/png");}private function createCode(){ $this->checkcode = strtoupper(substr(md5(rand()),0,$this->codenum));}private function createImage(){$this->checkimage = @imagecreate($this->width,$this->height);$back = imagecolorallocate($this->checkimage,255,255,255);$border = imagecolorallocate($this->checkimage,0,0,0); imagefilledrectangle($this->checkimage,0,0,$this->width - 1,$this->height - 1,$back); // 白色底imagerectangle($this->checkimage,0,0,$this->width - 1,$this->height - 1,$border); // 黑色边框}private function setDisturbColor(){for($i=0;$i<=200;$i++){$this->disturbColor = imagecolorallocate($this->checkimage, rand(0,255), rand(0,255), rand(0,255));imagesetpixel($this->checkimage,rand(2,128),rand(2,38),$this->disturbColor);}}private function writeCheckCodeToImage(){for ($i=0;$icodenum;$i++){$bg_color = imagecolorallocate ($this->checkimage, rand(0,255), rand(0,128), rand(0,255));$x = rand(0,7)+floor($this->width/$this->codenum)*$i;$y = rand(0,$this->height-15);imagechar ($this->checkimage, rand(5,8), $x, $y, $this->checkcode[$i], $bg_color);}}function __destruct(){ unset($this->width,$this->height,$this->codenum);}}//===============================$width=$_GET['w']?$_GET['w']:"80";$height=$_GET['h']?$_GET['h']:"33";$image = new ValidationCode($width,$height,'4'); $image->outImg();$_SESSION["auth"] = $image->checkcode;?>
$_SESSION["auth"]的值首次访问会为空,刷新一次才会显示出来。。。
删除第5行的 $_SESSION['auth'] = $randcode;
第75、76行的
$width=$_GET['w']?$_GET['w']:"80";
$height=$_GET['h']?$_GET['h']:"33";
改为
$width = isset($_GET['w']) ? $_GET['w'] : "80";
$height = isset($_GET['h']) ? $_GET['h'] : "33";
还是不行。。。。
验证码图片出不来吗?
ValidationCode类单独放在一个文件,并且单独方法a生成验证码,
需要的时候直接调用a方法,记得将类的$_SESSION['auth'] = $randcode;去掉。
检查文件是否是含有bom头
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php每分钟刷新一次的验证码,php如何在进入页面的时候自动刷新一次验证码相关推荐
- 微信H5页面,返回上一页面后页面不会自动刷新
最近在做微信公众号中的功能,有发现一个问题,就是微信H5页面中,有时候返回上一页后页面不会自动刷新,这样子就有可能造成页面数据更新不及时 在网上搜索后发现一个解决办法,使用window监听pageSh ...
- android表格自动刷新,IT之家安卓版v1.61:专栏新闻列表自动刷新
IT之家讯 12月5日消息,继上个版本对稳定性进行提升后,今天全新IT之家安卓客户端v1.61也正式与大家见面. 新版IT之家客户端主要增加了新闻列表自动刷新等功能,方便用户第一时间获取最新资讯信息: ...
- 在使用FireFox浏览器时,经常打开新标签,页面总是不断自动刷新,解决办法
可以用如下方法尝试(逐个尝试,看看哪个管用): 1.地址栏输入 about:support,右上角有个翻新Firefox,点击,等待浏览器重启,即可. 2.点击:工具-附加组件,把"火狐主页 ...
- 登录页面自动刷新验证码,并校验输入验证码和后台生成的验证码是否一致
登录jsp页面 <%@ page language="java" contentType="text/html; charset=UTF-8"pageEn ...
- js 刷新页面但是不闪烁_前端开发还在手动刷新页面?手把手教你搭建一个自动刷新工具...
作为一名前端,开发web页面是我们的本职工作.在完成一个页面开发的过程中,保存代码然后手动刷新页面查看效果,这样的动作需要重复无数次,虽然一次这样的动作可能只要花费几秒钟的时间,但是次数多了也挺浪费时 ...
- iframe的src动态修改并刷新_微服务中配置中心Config+消息总线Bus,实现分布式自动刷新配置
技术/杨33 一.分布式配置中心Config 一套集中的.动态的配置管理,实现统一配置微服务中的每个子服务. Spring Cloud Config为微服务架构提供了集中化的外部配置支持,配置服务器为 ...
- 自动刷新_AutoRefresh插件:开启页面自动刷新!
Auto Refresh 出于某种原因,在使用浏览器时我们可能需要每隔一段时间刷新一下网页. 例如在监视阅读量/下载量/评论,抢购新上市的手机和演唱会门票,查看网站更改进度这些场景中,如果都采用手动刷 ...
- token 过期刷新令牌_OkHttp实现全局过期token自动刷新
问题 一次面试遇到的一个问题,其实也是实际开发中很容易遇到的问题,特此记录一下. 当请求某个接口的时候,我们会在请求的header中携带token消息,但是发现token失效,接口请求报错,怎么马上刷 ...
- ASP.NET Core 自动刷新JWT Token
为了安全性考虑,我们可以设置JWT Token较短的过期时间,但是这样会导致客户端频繁地跳到登录界面,用户体验不好. 正常解决办法是增加refresh_token,客户端使用refresh_token ...
最新文章
- Cisco路由器安全配置必用10条命令
- Tomcat安全加固
- php引用计数的基本知识
- Java中异常的分类
- 深刻理解Python中的元类(metaclass)以及元类实现单例模式
- JavaScript巧用对象的引用解决三级联动
- python chrome headless_Chrome Headless模式(二)——Python+selenium+headerless
- 共享一个资源(卖票)
- 微软开源PowerShell并支持Linux
- virtio、vhost和vhost-user比较
- java与c语言_Java与C语言的区别之我见
- Java中的包扫描(工具)
- Linux下服务器搭建(7)——Oracle Linux ISO Images 高速镜像源下载地址(各版本齐全 建议收藏 最后更新2020.07.22)
- MySQL8.0二进制免编译部署过程详解(二)
- 收银机打印数据截取_自助收银机大大节约了人力成本
- python手册中文版-python手册中文
- 学习mysql比较好一些书籍
- 八十二烷基笼状聚倍半硅氧烷poss无色透明黏稠液体|提高颜料分散性
- 二手交易APP开发主要功能有哪些?(一)
- 最新哔哩哔哩视频弹幕播放器源码+带后台/亲测无错误