ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PHP会话:生成变量并将其保存用于会话

2019-11-22 07:31:53  阅读:147  来源: 互联网

标签:session-variables session-cookies session 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有