You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地主机localhost中Captcha验证码图片无法显示的技术求助

本地主机验证码显示问题解决方案

本地主机(XAMPP环境)完全能正常显示验证码,你的问题大概率出在代码细节或环境配置的小疏漏上,以下是具体排查和解决步骤:

1. 直接访问验证码脚本找错误

把浏览器地址栏换成 http://localhost/你的站点完整路径/captcha/captcha.php 直接访问:

  • 如果弹出PHP错误提示(比如GD函数未定义、语法错误),跟着提示修复:
    • 要是提示GD相关函数不存在,打开XAMPP的php.ini文件,找到extension=gd这行,把前面的分号删掉,然后重启Apache服务。
    • 要是显示空白或乱码,检查captcha.php文件开头有没有多余的空格、换行——PHP输出图片头之前,绝对不能有任何字符(包括<?php标签前面的空行)。

2. 核对captcha.php的核心代码逻辑

确保脚本开头正确设置了图片类型头,正确示例如下:

<?php
session_start();
// 这行必须写在所有输出之前
header('Content-Type: image/png');

// 创建画布
$image = imagecreate(200, 80);
// 设置颜色
$bg_color = imagecolorallocate($image, 240, 240, 240);
$text_color = imagecolorallocate($image, 30, 30, 30);

// 生成验证码文本并存入会话
$captcha_str = substr(str_shuffle('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'), 0, 5);
$_SESSION['captcha_code'] = $captcha_str;

// 写入验证码文本
imagestring($image, 5, 65, 30, $captcha_str, $text_color);

// 输出图片并释放资源
imagepng($image);
imagedestroy($image);
?>

重点检查:

  • 有没有调用session_start()(后续验证验证码需要用到会话)
  • header('Content-Type: image/png')是不是在echo、空格、HTML标签之前
  • GD相关函数(比如imagecreate、imagepng)有没有正确调用

3. 检查路径与权限

  • 确认captcha文件夹确实存在,本地XAMPP默认权限没问题,但可以右键文件夹取消“只读”属性试试
  • 图片标签的src路径要准确:如果验证码脚本在WordPress主题目录下,别用硬编码的相对路径,用WordPress自带函数获取绝对路径更稳妥:
<img height="80" width="200" src="<?php echo get_template_directory_uri(); ?>/captcha/captcha.php"/>

4. 排除浏览器与插件干扰

  • 清空浏览器缓存,或者用隐私模式打开页面
  • 暂时关掉WordPress的缓存插件、安全类插件(有些防火墙插件会拦截验证码脚本的请求)

如果还是不行,打开XAMPP控制面板的Apache错误日志(Apache→Logs→Error Log),看访问captcha.php时的具体报错信息,这是最快定位问题的方法。

内容的提问来源于stack exchange,提问作者Program

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 10:32:38