页面直接进入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如何在进入页面的时候自动刷新一次验证码相关推荐

  1. 微信H5页面,返回上一页面后页面不会自动刷新

    最近在做微信公众号中的功能,有发现一个问题,就是微信H5页面中,有时候返回上一页后页面不会自动刷新,这样子就有可能造成页面数据更新不及时 在网上搜索后发现一个解决办法,使用window监听pageSh ...

  2. android表格自动刷新,IT之家安卓版v1.61:专栏新闻列表自动刷新

    IT之家讯 12月5日消息,继上个版本对稳定性进行提升后,今天全新IT之家安卓客户端v1.61也正式与大家见面. 新版IT之家客户端主要增加了新闻列表自动刷新等功能,方便用户第一时间获取最新资讯信息: ...

  3. 在使用FireFox浏览器时,经常打开新标签,页面总是不断自动刷新,解决办法

    可以用如下方法尝试(逐个尝试,看看哪个管用): 1.地址栏输入 about:support,右上角有个翻新Firefox,点击,等待浏览器重启,即可. 2.点击:工具-附加组件,把"火狐主页 ...

  4. 登录页面自动刷新验证码,并校验输入验证码和后台生成的验证码是否一致

    登录jsp页面 <%@ page language="java" contentType="text/html; charset=UTF-8"pageEn ...

  5. js 刷新页面但是不闪烁_前端开发还在手动刷新页面?手把手教你搭建一个自动刷新工具...

    作为一名前端,开发web页面是我们的本职工作.在完成一个页面开发的过程中,保存代码然后手动刷新页面查看效果,这样的动作需要重复无数次,虽然一次这样的动作可能只要花费几秒钟的时间,但是次数多了也挺浪费时 ...

  6. iframe的src动态修改并刷新_微服务中配置中心Config+消息总线Bus,实现分布式自动刷新配置

    技术/杨33 一.分布式配置中心Config 一套集中的.动态的配置管理,实现统一配置微服务中的每个子服务. Spring Cloud Config为微服务架构提供了集中化的外部配置支持,配置服务器为 ...

  7. 自动刷新_AutoRefresh插件:开启页面自动刷新!

    Auto Refresh 出于某种原因,在使用浏览器时我们可能需要每隔一段时间刷新一下网页. 例如在监视阅读量/下载量/评论,抢购新上市的手机和演唱会门票,查看网站更改进度这些场景中,如果都采用手动刷 ...

  8. token 过期刷新令牌_OkHttp实现全局过期token自动刷新

    问题 一次面试遇到的一个问题,其实也是实际开发中很容易遇到的问题,特此记录一下. 当请求某个接口的时候,我们会在请求的header中携带token消息,但是发现token失效,接口请求报错,怎么马上刷 ...

  9. ASP.NET Core 自动刷新JWT Token

    为了安全性考虑,我们可以设置JWT Token较短的过期时间,但是这样会导致客户端频繁地跳到登录界面,用户体验不好. 正常解决办法是增加refresh_token,客户端使用refresh_token ...

最新文章

  1. Cisco路由器安全配置必用10条命令
  2. Tomcat安全加固
  3. php引用计数的基本知识
  4. Java中异常的分类
  5. 深刻理解Python中的元类(metaclass)以及元类实现单例模式
  6. JavaScript巧用对象的引用解决三级联动
  7. python chrome headless_Chrome Headless模式(二)——Python+selenium+headerless
  8. 共享一个资源(卖票)
  9. 微软开源PowerShell并支持Linux
  10. virtio、vhost和vhost-user比较
  11. java与c语言_Java与C语言的区别之我见
  12. Java中的包扫描(工具)
  13. Linux下服务器搭建(7)——Oracle Linux ISO Images 高速镜像源下载地址(各版本齐全 建议收藏 最后更新2020.07.22)
  14. MySQL8.0二进制免编译部署过程详解(二)
  15. 收银机打印数据截取_自助收银机大大节约了人力成本
  16. python手册中文版-python手册中文
  17. 学习mysql比较好一些书籍
  18. 八十二烷基笼状聚倍半硅氧烷poss无色透明黏稠液体|提高颜料分散性
  19. 二手交易APP开发主要功能有哪些?(一)
  20. 最新哔哩哔哩视频弹幕播放器源码+带后台/亲测无错误

热门文章

  1. CentOS部署JAVA程序、安装Tomcat以及安装导入mysql文件的方法
  2. react实现全选、取消全选和个别选择
  3. linux history记录格式修改
  4. Request.getInputStrema只能读取一次的分析过程
  5. Python函数中的参数(一)
  6. MySql5.7环境搭建
  7. PCL—低层次视觉—点云分割(基于凹凸性)
  8. zoj 1204 Additive equations
  9. poj 1698 Alice's Chance 最大流
  10. JavaServer Faces技术