我正在构建一个验证码类。我需要将生成的代码存储在PHP会话中。这是我到目前为止的代码:
<?php
class captcha
{
private $rndStr;
private $length;
function generateCode($length = 5)
{
$this->length = $length;
$this->rndStr = md5(time() . rand(1, 1000));
$this->rndStr = substr($rndStr, 0, $this->length);
if(session_id() != '')
{
return "session active";
} else {
return "no session active";
}
}
}
?>
并使用此代码检查:
<?php
include('captcha.class.php');
session_start();
$obj = new captcha();
echo $obj->generateCode();
?>
但它不会向页面输出任何内容,甚至不会输出PHP错误。有人知道这是为什么吗?有没有更好的方法来检查我是否已经使用session_start()
启动了会话
谢谢。
发布于 2010-04-26 00:24:25
$this->rndStr = substr($rndStr, 0, $this->length);
return $rndStr; //You return before the if statement is processed
if(session_id() != '')
{
return "session active";
} else {
return "no session active";
}
在上面的注释代码中回答
编辑:您更改了您的问题,并删除了返回行,这对那些费心回答的人来说并不友好:)
发布于 2010-04-26 00:33:09
我在测试你的类,这里看起来不错,在页面上激活了会话,也许你想试试这一行:
include(dirname(__FILE__).'/captcha.class.php');
发布于 2010-04-26 00:35:32
你确实有一个错误,所以我建议检查你的错误报告级别和显示错误设置-有很多关于如何做到这一点的简短教程。
注意:未定义的变量: rndStr位于/home/eric/localhost/test.php的第12行
当然,这是因为您编写的是$rndStr
而不是$this->rndStr
。
当我运行您的代码时,除了错误之外,我还看到了预期的输出。
会话处于活动状态
你能在其他脚本中成功地输出到浏览器吗?
https://stackoverflow.com/questions/2710504
复制相似问题