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" />
解决方法:
您需要在每个页面的顶部添加此代码以获取图像:
session_start();
if(isset($_SESSION['UserImg'])){
$img = $_SESSION['UserImg'];
}
else {
$img = getRandomFromArray($imgList);
$_SESSION['UserImg'] = $img;
}
这应该解决!
标签:session-variables,session-cookies,session,php 来源: https://codeday.me/bug/20191122/2057867.html