所以我创建了一个测验,最后使用shuffle()
函数生成随机引用。
当我刷新页面时,我会反复从数组中获取不同的值。
我希望它保持相同的价值。
这是我的代码:
<?php
$answer=array(
"Good job.",
"Great work!",
"Excellent."
);
shuffle ($answer);
echo $answer[0];
);
我想要的是...... 例如:
如果随机播放功能生成&#34; 干得好!&#34;而页面是 REFRESHED ,我希望它留在&#34; 干得好!&#34;,不要重新洗牌。
我的猜测是使用Cookie和会话就是答案,但我尝试过。
session_start()
提前致谢。
已编辑(仍然没有工作。)
<?php
session_start();
//Array of cars
$answer = array(
"Mercedes",
"Benz",
"Honda",
"Toyota",
"Nissan",
"Mazda",
"Hyundai",
"Ford",
"Lexus",
"Lamborghini",
"Ferrari",
"Porche",
"Mitsubushi",
"Scion",
"Chrysler",
"Jeep",
"Masarati"
);
shuffle ($answer);
if( isset ($_SESSION['myAnswer'])){
$answer = $_SESSION['myAnswer'];
}
else{
$_SESSION['myAnswer'] = $answer;
}
?>
答案 0 :(得分:1)
以下是Cookie的示例。我们采用随机密钥,然后将其保存到cookie中,而不是对数组进行洗牌。由于cookie可以被篡改,我们确保适当地验证该值。
$answer = array(
"Good job.",
"Great work!",
"Excellent."
);
if (isset($_COOKIE['answer'])) {
$answer_key = $_COOKIE['answer'];
}
if (!isset($answer_key) || !isset($answer[$answer_key])) {
$answer_key = rand(0, count($answer)-1);
setcookie('answer', $answer_key, time()+9999);
}
echo $answer[$answer_key];
这仅适用于键为数字(0,1,..., n )的数组。在使用setcookie()
之前,请确保不输出任何内容(包括空格)。
答案 1 :(得分:0)
命令session_start()
只会使会话可用,并且已在大多数配置中完成。您需要做的是实现将您的答案存储到会话中的实际代码,并从那里进行检索(如果可用)。
一个小样本(不是完整的代码,你可能想自己想要这样做)可能看起来像这样:
if( isset $_SESSION["myAnswer"] ){
$answerIdx = $_SESSION["myAnswer"];
}
else{
// Do it like you did before...
$_SESSION["myAnswer"] = $answerIdx;
}