Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > передача переменных


Автор: olejek 26.10.2007, 13:50
При первом посещении страницы переменная $time_limit принимает определенное значение. При последующих обращениях от значения этой переменной должно вычитаться время пребывания на странице. Но при каждом обращении к странице $time_limit не меняет значения. Почему?
Код

<?php 
$time_limit=$_POST["time_limit"];
$start=$_POST["start"];
$time_start=time();
                        
    if (!isset($start))    //Первое обращение к странице
        {
        $start=1;
        $time_limit=5000;
        }
        
    function time_use()
    {
    global $time_limit, $time_start;
    $time_limit=$time_limit-(time()-$time_start)*1000;
    }
        
echo $time_limit;
?>

Код

<form method=post action="getvar.php">
        <input type="submit" value="Принять" onClick=<?php time_use(); ?>>     
        <input type="Hidden" name="time_limit" value=<?=$time_limit?>>
        <input type="Hidden" name="start" value=<?=$start?>>
    </form>

P.S. Наверное, вопрос глупый, но, пожалуйста, ответьте.

Автор: flashaa 26.10.2007, 14:36
Надо не isset а empty.
Isset проверяет, была ли переменная определена. У тебя она всегда определена.

Код

$time_limit=$_POST["time_limit"];
$start=$_POST["start"]; // Определяешь переменную старт
$time_start=time();
                        
    if (!isset($start))    // Тут она определена isset - всегда TRUE
        {
        $start=1;
        $time_limit=5000;
        }


Надо так:
Код

 if (!empty($start))    // Тут она определена isset - всегда TRUE
        {
        $start=1;
        $time_limit=5000;
        }

Автор: sw04 28.10.2007, 23:41
не легче через сессии??

Автор: olejek 29.10.2007, 15:39
Точно!!! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)