gpt4 book ai didi

PHP Captcha - session 总是空的

转载 作者:行者123 更新时间:2023-12-03 20:30:08 25 4
gpt4 key购买 nike

我正在尝试将验证码添加到我的注册表中。图像渲染得很好,除了 session 变量总是空的,所以它根本不起作用..

我正在使用以下类(class):http://www.ejeliot.com/pages/php-captcha

根据文档,我必须制作一个包含以下内容的 php 文件:

<?php
require('classes/PhpCaptcha.php');
$aFonts = array('fonts/VeraBd.ttf', 'fonts/VeraIt.ttf', 'fonts/Vera.ttf');
$oVisualCaptcha = new PhpCaptcha($aFonts, 200, 60);
$oVisualCaptcha->SetBackgroundImages('captchaimgbg.jpg');
$oVisualCaptcha->Create();
?>

并将其作为图像包含在内。

现在我研究了 Create();函数,在这个函数中还有一个名为 GenerateCode() 的函数;被调用,它负责生成字母并将其放入 session 变量中。

代码如下:

      function GenerateCode() {
// reset code
$this->sCode = '';

// loop through and generate the code letter by letter
for ($i = 0; $i < $this->iNumChars; $i++) {
if (count($this->aCharSet) > 0) {
// select random character and add to code string
$this->sCode .= $this->aCharSet[array_rand($this->aCharSet)];
} else {
// select random character and add to code string
$this->sCode .= chr(rand(65, 90));
}
}

// save code in session variable
if ($this->bCaseInsensitive) {
$_SESSION[CAPTCHA_SESSION_ID] = strtoupper($this->sCode);
} else {
$_SESSION[CAPTCHA_SESSION_ID] = $this->sCode;
}
}

CAPTCHA_SESSION_ID 定义在类文件的顶部。在我的索引中,我有 session_start(); ,我仔细检查了一下,这不是问题所在。

无论我尝试什么,$_SESSION 总是空的,即使我在 create() 中手动添加 $_SESSION['bla'] = 'bla';函数,它不会显示。

有没有人知道是什么原因造成的,或者我做错了什么?

谢谢!

最佳答案

<?php

session_start();
require('classes/PhpCaptcha.php');
$aFonts = array('fonts/VeraBd.ttf', 'fonts/VeraIt.ttf', 'fonts/Vera.ttf');
$oVisualCaptcha = new PhpCaptcha($aFonts, 200, 60);
$oVisualCaptcha->SetBackgroundImages('captchaimgbg.jpg');
$oVisualCaptcha->Create();

?>

您需要在访问/设置 $_SESSION 变量的所有页面的代码顶部使用 session_start() 启动 session 。

关于PHP Captcha - session 总是空的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14103609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com