如何在会话中获取mt_rand的结果

时间:2017-12-15 12:59:01

标签: php session random

我希望我的网站每次刷新时都有一个随机背景,但是在有人登录后,我希望这个背景在会话的其余部分保持不变。我找到了随机背景的以下代码:

<?php    
$bg = array('bg-01.jpg', 'bg-02.jpg', 'bg-03.jpg', 'bg-04.jpg', 'bg-05.jpg', 'bg-06.jpg', 'bg-07.jpg', 'bg-08.jpg', 'bg-09.jpg', 'bg-10.jpg', 'bg-11.jpg', 'bg-12.jpg', 'bg-13.jpg');

$n = mt_rand(0, count($bg)-1);
  $selectedBg = "$bg[$n]";     
?>

为了您的兴趣:这就是我确保所选bg确实是页面背景的方式(这是放在<head>部分中):

<style type="text/css">
body{
background: url(../afbeeldingen/<?php echo $selectedBg; ?>) ; background-size: 100%; background-attachment: fixed;
}
</style>

这很好用。但现在我想把输出放在一个会话中。起初我认为这会奏效:

$_SESSION['background']= "$selectedBg";

这会在会话中放入一个随机数,但该数字与之前mt_rand输出的数字不同。我也一直在努力使用以下JavaScript

<script>
document.getElementById("demo").innerHTML =
Math.floor(Math.random() * 100) + 1;
</script>

但我无法将输出与之前提供的$ bg数组匹配。 我还是PHP的初学者。

1 个答案:

答案 0 :(得分:3)

这样做,

session_start();
if(!isset($_SESSION['logged_in'])){
    $selectedBg = "bg-".rand(1, 13).".jpg";
    $_SESSION['background'] = $selectedBg;
    echo $_SESSION['background'];
}else{
    echo $_SESSION['background'];
}

当客人来到这里时,他们将获得新的背景,您可以使用rand()功能而不是您拥有的阵列,它会对您有帮助, 第二,你检查用户是否登录,你给他们最后的背景,如果没有,改变背景。

我希望这可以帮到你,