如何在会话变量中存储rand()值而不在下次执行时覆盖它

问题描述 投票:0回答:2

我正在为客户编写一些演示webapps,我需要一个文章生成器,它将使用会话变量_article_id作为存储的整数值,从MySQL数据库中选择当天“最重要”的文章。

我在rand(1,99)中运行$_SESSION['_article_id'],但值似乎正在改变,因为它在每个新请求上反复执行该函数。

如何将rand()输出存储到变量中,以便在会话期间保持不变?

谢谢。

php
2个回答
5
投票

也许检查这个变量是否设置?

if(!isset($_SESSION['_article_id'])){
   $_SESSION['_article_id'] = rand(1,99);
}

https://www.php.net/isset


0
投票
function generatePIN($digits = 4)
    {
        $i = 0; //counter
        $pin = ""; //our default pin is blank.
        while($i < $digits){
            //generate a random number between 0 and 9.
            $pin .= mt_rand(0, 9);
            $i++;
        }
        return $pin;
    }
if (!isset($_SESSION['_article_id'])){
$_SESSION['_article_id'] = generatePIN();
}
© www.soinside.com 2019 - 2024. All rights reserved.