我完全不熟悉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