2

我正在尝试这样做,以便每次加载用户会话时都会从目录中显示一个随机图像。就像一个广告。

目前图像在每次页面刷新时都会改变,这并没有真正帮助我,因为当用户从一个页面转到另一个页面时,图像的不断刷新变得很烦人。

这是我到目前为止所拥有的?请任何人都可以指出我需要做我需要做的那段代码。

<?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>
4

2 回答 2

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>
于 2012-10-13T11:40:42.283 回答
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="">
于 2012-10-13T11:35:13.087 回答