当前位置: 首页 > 编程日记 > 正文

php每分钟刷新一次的验证码,php如何在进入页面的时候自动刷新一次验证码

页面直接进入login页面的时候无法获取到$_SESSION["auth"]值,只能刷新一次验证码才能获取到值,怎么才能在用户访问的时候自动刷新一次验证码,求大神支招。。。

验证码

rand_func.php

回复讨论(解决方案)

哪里获取到$_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换验证码图片的那个函数

估计是图片缓存问题。

rand_func.php%20?%7Btime()%7D

改成这样看看。

当我访问登录页面的时候$_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中文网,转载请注明出处,感谢您的尊重!

相关文章:

vs2010快捷方式

【窗口快捷键】 CtrlW,W: 浏览器窗口 CtrlW,S: 解决方案管理器 CtrlW,C: 类视图 CtrlW,E: 错误列表 CtrlW,O: 输出视图 trlW,P: 属性窗口 CtrlW,T: 任务列表 CtrlW,X: 工具箱 CtrlW,B: 书签窗口 CtrlW,U: 文档大纲 CtrlD,B: 断点窗口 CtrlD,I: 即时窗口 CtrlTab: 活…

移动端rem屏幕设置

//修改页面title var pageTitledocument.getElementsByTagName("title")[0].innerHTML; if(location.href.indexOf("index.html")>-1 || location.href.indexOf("html")-1){document.getElementsByTagName("title")[0].innerHTML&q…

二维指针操作链表

背景 Linus slashdot: https://meta.slashdot.org/story/12/10/11/0030249 Linus大婶在slashdot上回答一些编程爱好者的提问&#xff0c;其中一个人问他什么样的代码是他所喜好的&#xff0c;大婶表述了自己一些观点之后&#xff0c;举了一个指针的例子&#xff0c;解释了…

php多选框怎么传值,tp3.2如何处理多选框传参和判断状态

创建多选框&#xff1a;(1)普通的多选&#xff1a;123(2)在数据库中遍历出来的多选框,value和data-id都要赋值(大家都懂&#xff0c;我就不说啦)&#xff1a;{$vo.title} 2.我是用jq做的异步,我是使用英文“&#xff0c;”分割字段存储的。我们的前端是自己封装过的,大家根据自…

UIWebView和UIActivityIndicatorView的结合使用

环境&#xff1a;Xcode6.1 UIWebView是iOS开发中常用的一个控件&#xff0c;是内置的浏览器控件&#xff0c;我们可以用它来浏览网页&#xff0c;加载文档等。这篇文件将结合UIActivityIndicatorView控件制作一个小实例(加载apple的官网)。效果如下&#xff1a; 一.建立一个Sin…

Python对象类型——字符串、列表、元组

字符串Python连接多个字符串可用“”号&#xff0c;但这个操作不如把所有子字符串放到一个列表或可迭代对象中&#xff0c;然后调用一个join方法来把所有内容连接在一起节约内存。原始字符串操作符&#xff08;R/r&#xff09;&#xff1a;相当于取消“\”转义&#xff0c;在使…

leetcode--1:(python)Two Sum

2019.5.25: #1 Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. Example: 我的解法&#xff1…

memset初始化内存

在suse 9,运行man memset 查看memset的解释如下&#xff1a; “NAME memset - fill memory with a constant byte SYNOPSIS #include <string.h> void *memset(void *s, int c, size_t n); DESCRIPTION The memset() function fills the fir…

php 数字变量,php入门变量之数字_PHP教程

在介绍变量时&#xff0c;我明确指出PHP具有整型和浮点型(小数)数字类型。但是&#xff0c;依据我的经验&#xff0c;这两种类型都可以归类到一般的数字之下(在极大程度上是这样的)。下面列举下PHP中有效的数字类型的变量&#xff1a;83.1410980843985-4.23985084.4e2注意&…

BZOJ 1597: [Usaco2008 Mar]土地购买( dp + 斜率优化 )

既然每块都要买, 那么一块土地被另一块包含就可以不考虑. 先按长排序, 去掉不考虑的土地, 剩下的土地长x递增, 宽y递减dp(v) min{ dp(p)xv*yp1 }假设dp(v)由i转移比由j转移优(i>j), 那么dp(i)xv*yi1 < dp(j)xv*yj1化简得 (dp(i) - dp(j))/(yi1-yj1) > -xv然后就斜率优…

雨季来临 对车辆涉水说“NO”

七月的上海开始进入暴雨频发的季节。在城市排水系统受到考验的同时&#xff0c;车主们的车辆也同样经受着雨水的考验。而每年都会有相当一部分车辆因为“水害”&#xff0c;使车辆自身的价值受到很大的影响。为此开新通过以下案例为大家做个分析。并推荐几个实用的技巧以备不时…

C#编写dll进行sql server数据库扩展储存过程

一、编写C#函数文件 1、新建一个类库文件 备注&#xff1a;sqlserver 2008只能用.net3.5版本。 2、如有想加入强命名的话可如下步骤&#xff1a; 参考博文&#xff1a;https://blog.csdn.net/donnie88888888/article/details/52743064 1、运行在“开始菜单”-“程序”-“Micros…

malloc(0)-malloc 0 字节

C17中有如下描述&#xff1a; 7.22.3 Memory management functions 1 The order and contiguity of storage allocated by successive calls to the aligned_alloc, calloc, malloc, and realloc functions is unspecified. The pointer returned if the allocation succeeds …

php常见排序算去,PHP兑现常见排序算法

PHP实现常见排序算法//插入排序(一维数组)function insert_sort($arr){$count count($arr);for($i1; $i$tmp $arr[$i];$j $i - 1;while($arr[$j] > $tmp){$arr[$j1] $arr[$j];$arr[$j] $tmp;$j--;}}return $arr;}//选择排序(一维数组)function select_sort($arr){$coun…

C#中 int.TryParse 的用法

int i -1;bool b int.TryParse(null, out i);执行完毕后&#xff0c;b等于false&#xff0c;i等于0&#xff0c;而不是等于-1&#xff0c;切记。 int i -1;bool b int.TryParse("123", out i); 执行完毕后&#xff0c;b等于true&#xff0c;i等于123&#xff1b;…

2022-2028年中国综艺节目市场深度调研及投资前景预测报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国综艺节目行业市场行业相关概述、中国综艺节目行业市场行业运行环境、分析了中国综艺节目行…

cocos2d-js 自定义事件监听派发

熟悉js的dom事件或者flash事件的&#xff0c;基本都能立马明白cc.eventManager的用法。 cc.eventManager有两种注册监听器的方式&#xff0c;一种是原生事件&#xff0c;例如 cc.eventManager.addListener({ event: cc.EventListener.KEYBOARD, onKeyReleased: function(keyCod…

URL编码转义,冒号和/不转,否则导致http链接失效

URL含有中文需要转义 参考 https://blog.csdn.net/benbenxiongyuan/article/details/10608095 自己写一个 1 public boolean checkURLFileIsExist(String stringURL){2 boolean isExist false;3 String sEncodeURL;4 5 try{6 // URL内中文…

C面向对象之透明指针的运用

不透明指针(opaque pointer)可以用来在C中实现封装。 什么是不透明指针(opaque pointer) 从字面意思来看&#xff0c;“不透明”意味着看不到内部&#xff0c;因此“不透明指针”即看不到内部定义的指针。这样说有些抽象&#xff0c;我们来看个例子&#xff1a; #include &l…

支付宝 php rsa算法,:PHP支付宝接口RSA验证

这两天一直困扰的PHP RSA签名验证问题终于解决了&#xff0c;由于之前RSA接触的不多&#xff0c;再加上官方至今还未有PHP的SDK可供参考&#xff0c;因此走了一些弯路&#xff0c;写在这里和大家分享。虽然支付宝官方还未提供相关SDK&#xff0c;PHP确实可以实现RSA方式的签名&…

int与string转换

参考&#xff1a; http://greatverve.cnblogs.com/archive/2012/10/24/cpp-int-string.html 转载于:https://www.cnblogs.com/predator-wang/p/4789775.html

更改Jenkins升级站点

更新地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 【图示】&#xff1a;

Android 模仿微信启动动画(转)

本文内容 环境项目结构演示微信启动动画本文演示微信启动动画。请点击此处下载&#xff0c;自行调试。 顺便抱怨一下&#xff0c;实践性&#xff08;与研究性质的相对&#xff09;技术博的“七宗罪”&#xff1a; 第一宗罪&#xff0c;错字连篇&#xff0c;逻辑不清&#xff1b…

navicat for mysql收藏夹

navicat for mysql如果库表非常多的化&#xff0c;每次输入表名比较繁琐。 可以进入收藏夹便于快速打开经常使用的库表。 打开要入收藏夹的表&#xff0c;文件-添加收藏夹。 也可以快捷键shiftctrl1 如果已经有3个占用了&#xff0c;则自动跳到第4个栏位 也可以快捷键shiftctrl…

C 变量的作用域

下面的程序输出什么&#xff1f;思考一下 #include <stdio.h>// Driver Code int main() {{int x 10, y 20;{// The outer block contains// declaration of x and// y, so following statement// is valid and prints// 10 and 20printf("x %d, y %d\n",…

oracle字段重复新增错误,oracle在已有重复数据的列上创建唯一约束

在有重复数据的列上添加unique constraints,大家正常的解决办法就修改重复数据,但也可以 保留重复数据,使约束对以后的数据有限制,不过我们还可以用以下的方法来添加唯一约束. SQL create table aa(num number(6),email varchar2(32)); 表已创建。 SQL insert在有重复数据的列上…

poj_3067 树状数组

题目大意 左右两个竖排&#xff0c;左边竖排有N个点&#xff0c;从上到下依次标记为1,2,...N; 右边竖排有M个点&#xff0c;从上到下依次标记为1,2....M。现在从K条直线分别连接左边一个点和右边一个点&#xff0c;求这K条直线的交点个数&#xff08;左右竖排上的点不算做交点&…

2022-2028年中国自主可控行业深度调研及投资前景预测报告(全卷)

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国自主可控行业市场行业相关概述、中国自主可控行业市场行业运行环境、分析了中国自主可控行…

linux /etc/fstab文件参数求解释

2019独角兽企业重金招聘Python工程师标准>>> # cat /etc/fstab# # /etc/fstab # Created by anaconda on Mon Dec 17 09:06:53 2012 # # Accessible filesystems, by reference, are maintained under /dev/disk # See man pages fstab(5), findfs(8), mount(8) and…

C运算符优先级笔记

1. 指针数组 int *p[5]; [] 大于 * 2. 强制类型() 与 成员选择(./->) #include <stdlib.h>typedef struct {int data;int time; } data_t;int main() {data_t *p (data_t *)malloc(sizeof(data_t));int t (data_t *)p->time; /*focus: -> 大于 (data_t)*/f…