在每个新会话上显示随机图像?

时间:2012-10-13 11:30:20

标签: php image session

我正在努力使每次加载用户会话时,从目录中显示随机图像。像广告一样。

当图像更改每个页面刷新时,这对我没有帮助,因为当用户从一个页面到另一个页面时,不断刷新图像会变得烦人。

这是我到目前为止的情况? 请任何人都可以指出我需要做的代码。

<?php

$path_to_images = "../PTB1/data/adverts/"; // path for images
$default_img = "test.png"; // default image, when error on page

function getRandomImage($path, $img) {

if ( $list = getImagesList($path) ) {
mt_srand( (double)microtime() * 1000000 );
$num = array_rand($list);
$img = $list[$num];
}
return $path . $img;
}
function getImagesList($path) {
$ctr = 0;

    if(!isset($_SESSION['id']));


if ( $img_dir = @opendir($path) ) {
while ( false !== ($img_file = readdir($img_dir)) ) {
// formati slik, ki jih prepozna
if ( preg_match("/(\.gif|\.jpg|\.png)$/", $img_file) ) {
$images[$ctr] = $img_file;
$ctr++;
}
}
closedir($img_dir);
return $images;
}
return false;
}

?>
<div class=\"advert-box\" id=\"mod-advert\">
<img src="<?php echo getRandomImage($path_to_images, $default_img) ?>" height="190" width="180"alt="">
</div>

2 个答案:

答案 0 :(得分:0)

第一步,在用户登录时进行图像选择:

session_start();
if(!isset($_SESSION['image'])){
    $_SESSION['image'] = getRandomImage($path_to_images, $default_img);
}

接下来,在每个页面上,您只需要查看$_SESSION['image']变量:

<img src="<?php echo $_SESSION['image']; ?>" height="190" width="180"alt="">

答案 1 :(得分:0)

您是否尝试创建会话变量?

<?php 

session_start();
// check if a image is already present
// no need to create again
if(!isset($_session['image'])){
  $_session['image'] = getRandomImage($path_to_images, $default_img);  
}

....
....


<div class=\"advert-box\" id=\"mod-advert\">
<img src="<?php echo $_session['image'] ?>" height="190" width="180"alt="">
</div>