0

我有一个网站,我想为页面随机选择一个背景图像。此图像应保存在会话变量中,直到浏览器关闭。目前每次页面刷新时都会一次又一次地调用随机函数,但它应该留在会话中。那么如何使用drupal或通常的php将背景图像保存到浏览器会话中,直到浏览器关闭?

这里在每个页面调用的代码都会加载随机函数。

<div id="page" style="background: url('/sites/all/themes/klickers/css/images/bgtop-0<?php    echo rand(1, 4); ?>.jpg') no-repeat 50% 0 #000000;" class="<?php print $classes; ?>">
4

2 回答 2

1

像这样的事情会做到这一点

<?php
session_set_cookie_params(0); // this will ensure your session destroys when browser is closed
session_start();
if(!isset($_SESSION['bgImage'])) {
$bgImage = rand(1, 4);
$_SESSION['bgImage'] = $bgImage;
} 
?>
<div id="page" style="background: url('/sites/all/themes/klickers/css/images/bgtop-0<?php    echo $_SESSION['bgImage']; ?>.jpg') no-repeat 50% 0 #000000;" class="<?php print $classes; ?>">

已编辑

添加session_set_cookie_params(0);

于 2013-07-20T20:37:26.477 回答
1
<?php

session_start(); //call this before doing anything else
if (isset($_SESSION['bgimage'])) {
    $bgimage = $_SESSION['bgimage'];
}
else {
    $bgimage = mt_rand(1,4); //mt_rand() is the better rand()
    $_SESSION['bgimage'] = $bgimage;
}

?>
<!DOCTYPE HTML>
...
<div id="page" style="background: url('/sites/all/themes/klickers/css/images/bgtop-0<?php echo $bgimage ?>.jpg') no-repeat 50% 0 #000000;" class="<?php print $classes; ?>">
于 2013-07-20T20:26:00.007 回答