编程语言
首页 > 编程语言> > PHP会话:生成变量并将其保存用于会话

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