Проверка, активен ли сеанс - PullRequest
0 голосов
/ 26 апреля 2010

Я строю класс капчи. Мне нужно хранить сгенерированный код в сеансе 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()?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 26 апреля 2010

Я тестировал ваш класс, похоже, все в порядке, активен сеанс на странице, возможно, вы хотите попробовать эту строку:

include(dirname(__FILE__).'/captcha.class.php');
0 голосов
/ 26 апреля 2010

У вас есть ошибка, поэтому я предлагаю проверить ваш уровень отчетов об ошибках и показать настройки ошибок - множество коротких уроков о том, как это сделать.

Примечание: неопределенная переменная: rndStr in /home/eric/localhost/test.php на линии 12

Конечно, это потому, что вы написали $rndStr вместо $this->rndStr.

Когда я запустил ваш код, кроме ошибки, я увидел ожидаемый результат.

сеанс активен

Вы можете успешно выводить в браузер другие сценарии?

0 голосов
/ 26 апреля 2010
$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"; 
        } 

Ответ в комментариях выше

Редактировать: И вы изменили свой вопрос и удалили обратную строку, нехорошо для людей, пытающихся ответить :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...