作者saininniang (sob)
看板PHP
标题Re: [请益] submit後,乱数值跑掉
时间Fri Nov 17 23:42:03 2006
※ 引述《foxzgerald (O⊥M)》之铭言:
: ----------------------------------------------------
: 如果要避免重复,应该於产生乱数阵列之前做些判断..
: ----------------------------------------------------
: if(!isset($_POST['n'])) // 如果表单尚未被 submit
: // 产生乱数阵列
: //显示表单
: if(isset($_POST['n']))
: // 处理乱数阵列
: -----------------------------------------------------
: 上述的流程可以确保在表单被 submit 之後,不会再次产生新的阵列
: 然而会有一个问题:如果你的乱数阵列不是储存在 session 变数中
: 发送表单之後,虽不重复产生乱数阵列,但因变数的生命周期已过
: 所以会抓不到乱数阵列。
的确,我遇到这个困难了
: 至少有两种解决方式,一是储存在 session 中,另一种是将产生出
: 来的乱数阵列储存在表当之中
: ( 例:阵列可以用 base64_encode(serialize($rand_array));转成字串储存,
: 解码则逆向操作 unserialize(base64_decode($_POST['rand_array']));
: 当然也可以存到资料库或cookie中,方式不少端看你要做什麽。
有点复杂
我重新再简化我的问题好了,
乱数阵列的处理方法实在太复杂了,我听不太懂
功能:
产生一个乱数
用这个乱数当猜数字的题目
猜的如果比乱数小,印出:太小了
猜的如果比乱数大,印出:太大了
猜的如果等於乱数,印出:right
问题所在:
每按一次submit
乱数就会变一次....
我要的功能是产生一个乱数後
就一直以那个乱数去猜大小
不能每按一次submit後乱数又变更
该怎麽解决?
--------------------------------------
<html>
<head>
<title></title>
</head>
<body>
<CENTER>
<form method="post">
请输入搜寻的数字:<input type=text name=n>
<input type=submit value=送出>
</form>
</CENTER>
<hr>
<?
$num=rand(1,100);
echo $num;
if (isset($n))
{
if ($n<$num)
{
echo "太小了";
continue;
}
elseif ($n>$num)
{
echo "太大了";
continue;
}
else
{
echo "right";
}
}
?>
</body>
</HTML>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.142.122
1F:推 allanshen:简单来说,就是把第一次产生的乱数存起来 11/18 00:59
2F:→ allanshen:session、cookie、档案、资料库、shm .都是可以存的地方 11/18 01:00