我是php会话的新手。我无法完成一项简单的任务。 这就是我想要做的事情:
这部分到目前为止是有效的。但每次用户进入另一个页面时(我在所有页面上显示此随机图像),脚本都会生成一个新的随机图像以供显示。
我现在想做的是:
这是我的工作代码,用于获取随机图像而不将其保存到会话中。如果有人可以帮助我了解代码应该如何,所以它适用于会话将是非常棒的。请记住:在会议方面我完全是新手。
正如您所看到的,我需要在生成后将变量$ img存储到会话中。如果用户没有在他的会话中存储$ img变量,那么脚本只会再次访问新站点。
<?php
function getImagesFromDir($path) {
$images = array();
if ( $img_dir = @opendir($path) ) {
while ( false !== ($img_file = readdir($img_dir)) ) {
// checks for gif, jpg, png
if ( preg_match("/(\.gif|\.jpg|\.png)$/", $img_file) ) {
$images[] = $img_file;
}
}
closedir($img_dir);
}
return $images;
}
function getRandomFromArray($ar) {
mt_srand( (double)microtime() * 1000000 ); // php 4.2+ not needed
$num = array_rand($ar);
return $ar[$num];
}
$root = '';
// use if specifying path from root
//$root = $_SERVER['DOCUMENT_ROOT'];
$path = 'images/';
// Obtain list of images from directory
$imgList = getImagesFromDir($root . $path);
$img = getRandomFromArray($imgList);
?>
<img src="/<?php echo $path . $img ?>" alt="image" />
答案 0 :(得分:3)
您需要在每个页面的顶部添加此图片以获取图片:
session_start();
if(isset($_SESSION['UserImg'])){
$img = $_SESSION['UserImg'];
}
else {
$img = getRandomFromArray($imgList);
$_SESSION['UserImg'] = $img;
}
这应该可以解决!
答案 1 :(得分:0)
在每个页面调用之上:
session_start();
以会话中的安全变量为例:
$_SESSION['imageid'] = $ID
要获得变量:
$imageid = $_SESSION['imageid']