我完全不熟悉php会话。我无法完成简单的任务。 这就是我要做的: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" />
嗨。谢谢。这似乎工作。但问题在于,脚本正在生成每个页面上的$ img,正如您已经想到的那样。我现在需要的是一个代码,该函数$ img = getRandomFromArray($ imgList);只在用户没有存储在他的会话中的变量时才运行。怎么做? – monchichi
我想我明白了。 我这样做过: <?php session_start();如果(isset($ _ SESSION ['UserImg'])){ $ img = $ _SESSION ['UserImg']; } else { $ img = getRandomFromArray($ imgList); } $ _SESSION ['UserImg'] = $ img; ?> – monchichi
是的,这应该工作!在else块中添加'$ _SESSION ['UserImg'] = $ img;'。否则,你已经拥有了会话变量。 – Tzar