PHP验证码SESSION验证码图片不同步

article/2025/10/3 7:17:06

PHP验证码SESSION验证码图片不同步

今天在做php登录验证的时候带验证码的,nc的在页面输出了下验证码的session,于是乎出现了戏剧性的一幕,session验证码和图片上的验证码不一样?那用户岂不是登陆不上了?但是奇怪的是用户输入图片中的验证码还能够登陆成功,这就很奇怪了,验证码匹配不上怎么会登录成功呢?于是我看了下代码,代码如下

if (empty($login_captcha)) {
    $captcha_error = "验证码不能为空";
    $TF = false;
}else {
    if (strcasecmp($login_captcha, $_SESSION['captcha']) != 0) {
        $captcha_error = "验证码错误";
        $TF = false;
    }
}
if ($TF) {
    if ($login_username == $username && $login_password == $password) {//匹配成功即为登录成功
        //匹配成功将用户名密码赋值给session
        $_SESSION['username'] = $login_username;
        $_SESSION['password'] = $login_password;
        if (isset($rememberMe)) {//如果用户勾选了记住密码则设置cookie
            setcookie("username", $_SESSION['username'], $t);
            setcookie("password", $_SESSION['password'], $t);
        }
        $login_TF = true;
        $_SESSION['login_TF'] = $login_TF;//传递登录状态
        header("refresh:1;url=admin.php");//跳转页面
    } else {
        $username_error = "用户名或密码错误";
        $password_error = "用户名或密码错误";
    }
}

可以看到代码是没有逻辑错误的那为什么会出现可以登录问题呢?先说一下验证码session和图片上验证码不同步的问题,首先php运行是是逐行运行的这就导致你这个输出的session是上一次的,然后下面图片调用验证码的时候就会重新设置验证码session。

那么为什么还可以登陆呢?因为form表单点击提交时,页面会刷新,这样的话验证码session又变成了和输入的验证码相同了,所以就判断验证码输入正确,就可以登录了,即每点击一次登录验证码session会变成用户已经输入的验证码。既然弄明白了这个问题那么有没有解决方法呢?

办法是有的但是我还没学到哈哈哈哈。自行百度,不百度也可以将就着用。


逐梦版权所有丨如未注明 , 均为原创丨本网站采用 BY-NC-SA协议进行授权
转载请注明原文链接: PHP验证码SESSION验证码图片不同步
喜欢 (1)

http://chatgpt.dhexx.cn/article/n9Li5fbp.shtml

相关文章

php 验证码 生成,PHP实现随机生成验证码功能

验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码 验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。当然,也可以封装成一个函数,以后使用的时候也是很方便的,但是现在未封装。…

php验证是否图片,php验证码图片不显示图片怎么办

php验证码图片不显示图片的解决办法:首先检查php是否安装gd扩展;然后在php目录下找到php.ini文件;最后将文件编码方式改为utf-8无DOM格式,并在header前清除缓存即可。 PHP图片验证码无法显示的解决方案 问题:使用php实…

php验证码刷新_php实现点击可刷新验证码

这篇文章主要介绍了php如何实现点击即可刷新验证码,代码很详细,值得大家学习,感兴趣的小伙伴们可以参考一下 验证码类文件 CreateImg.class.php width$width; $this->height$height; $this->codenum$codenum; } function outImg() { //…

php验证码显示乱码,如何解决php验证码乱码问题

php验证码乱码的解决办法&#xff1a;1、修改访问验证码生成方法函数的路径&#xff1b;2、修改文件编码&#xff0c;并去掉BOM头&#xff1b;3、检查验证码生成方法&#xff1b;4、修改服务环境。 具体问题&#xff1a; php验证码输出全是乱码...<?php session_start(); …

php实现登录验证码_php如何实现登录验证码

php实现登录验证码的方法:首先产生4到6位数的随机验证码;然后把产生的每个字符保存到session或数据库;接着将验证码发送到用户的手机;最后将和输入的验证码进行对比验证即可。 PHP实现简单的验证码功能机制 网站的安全性是开发者不可忽视的一个问题,目前使用最多的一种可以…

php验证码类(分享)

//验证码类 class ValidateCode {private $charset abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789;//随机因子private $code;//验证码private $codelen 4;//验证码长度private $width 130;//宽度private $height 50;//高度private $img;//图形资源句柄private $font…

php验证码图片不显示怎么办,php 验证码图片无法显示怎么办

php验证码图片无法显示的解决办法&#xff1a;首先打开相应的PHP文件&#xff1b;然后在header输出之前添加代码为“ob_clean();”&#xff1b;最后保存修改即可。 本文操作环境&#xff1a;Windows7系统、PHP7.1版&#xff0c;DELL G3电脑 PHP验证码图片无法显示问题 我以为是…

PHP验证码不能显示的问题

最近学校学习任务需要用到验证码&#xff0c;敲完代码后运行时发现验证码并没有生效&#xff0c;上官网查看才发现原来是自己的GD库没有配置&#xff0c;需要我们对php.ini文件进行配置 1、载入GD库 在php.ini文件中写入extensionphp_gd.dll 2、在php.ini文件中开启gd.jpeg_i…

php 验证码功能的实现原理,php验证码实现原理

PHP验证码实现原理 生成随机数或者字母保存到session中(验证验证码的时候用),然后对生成的数字或者字母进行绘图!然后呈现在我们眼前 刷新验证码:用js改变验证码图片所带的参数,让浏览器不读缓存的图片,从而实现刷新验证码效果! 代码示例 $str"QWERTYUIOPASDFGHJKLZXCVBNM…

php验证码刷新_php验证码刷新与局部刷新

欢迎进入Linux社区论坛&#xff0c;与200万技术人员互动交流 >>进入 实现php 验证码调用时的刷新与局部刷新&#xff0c;这二种情况在网站开发中均有使用。 一、验证码刷新 代码示例&#xff1a; form method"post" name"login" action"" …

php 验证码不正确,php验证码提示错误

问题&#xff1a;新服务器配置好后&#xff0c;部署了php网站&#xff0c;网站打开和显示都正常在用户登录时总是提示验证码错误。(输入了正确的验证码) 原因分析&#xff1a; 1、session问题 session中没有记住验证码&#xff0c;应该是php的session文件夹权限问题。 处理方法…

php 验证码一直不对,php验证码错误

问题&#xff1a; 新服务器配置好后&#xff0c;部署了php网站&#xff0c;网站打开和显示都正常&#xff0c;但是在用户登录时总是提示验证码错误。(输入了正确的验证码) 原因分析 1、session问题 session中没有记住验证码&#xff0c;这个应该是php的session文件夹权限问题。…

PHP笔记-验证码例子

注意需要先把php_gd2.dll放开&#xff1a; php.ini文件修改。 如下验证码效果&#xff1a; 代码如下&#xff1a; Captcha.php <?phpnamespace vendor;class Captcha{public static function getCaptcha($width 450, $height 65, $length 4, $fonts ""){if…

php学习----php实现验证码(一)

一、简单介绍验证码 1.验证码为全自动区分计算机和人类的图灵测试的缩写。是一种区分用户是计算机和人的公共全自动程序。 2.验证码主要应用场景&#xff1a;登录、注册确定前&#xff0c;发布、回复信息前&#xff0c;疑似机器请求时&#xff0c;做人/机器校验。 3.实现步骤…

imwrite或者imread时像素值发生变化

我想读取元素图片&#xff0c;并进行像素值拉伸。代码中是直接将像素值乘以5. for file in os.listdir(data_dir): ###最多读取两级目录找到图片 if os.path.isdir(os.path.join(data_dir,file)): #print("its a directory") …

cv::imwrite保存图像灰度值发生变化

现象 imwrite是一个很简单的函数&#xff0c;不过最近使用时发现如果保存为.jpg格式会影响灰度值&#xff0c;而保存为bmp格式灰度值不会发生变化。 原因 bmp格式的图片是不带任何压缩&#xff0c;而有些图片格式是自带压缩的&#xff0c;比如jpg格式&#xff0c;因此图像的…

python opencv cv2.imwrite

python opencv cv2.imwrite 环境说明 opencv 安装 pip install opencv-pythonopencv&#xff1a;opencv_python 4.5.5.64 介绍 方法&#xff1a; cv2.imwrite def imwrite(filename, img, paramsNone): 输入&#xff1a; filename&#xff1a;保留图片文件的路径&#…

matlab imwrite 索引,Matlab imwrite()质量

虽然我知道一些其他编程语言&#xff0c;但我对Matlab很陌生&#xff0c;所以请原谅我&#xff0c;如果这很简单。我无法在StackOverflow或其他地方找到任何答案。Matlab imwrite()质量 figure(6),imageplot(P); drawnow; &#xff0c;看起来像这样&#xff1a; 我用下面的代码…

imwrite() opencv压缩问题

函数&#xff1a; CV_EXPORTS_W bool imwrite( const String& filename, InputArray img, const std::vector<int>& params std::vector<int>()); 第三个参数说明&#xff1a;const std::vector&类型的params&#xff0c;表示为特定格式保存的参数…

利用OpenCV的函数imwrite()保存图像到硬盘

在图像处理的操作中&#xff0c;我们不仅要经常显示图像&#xff0c;还需要保存图像到硬盘或其它存储设备&#xff0c;可以利用函数imwrite()实现。 函数imwrite()的原型如下&#xff1a; C原型&#xff1a; bool cv::imwrite(const String & filename,InputArray img,co…