/* 生成随机数 */function randKeys($len=5){ $str='0123456789'; $rand=''; for($x=0;$x<$len;$x++){ $rand.=($rand!=''?',':'').substr($str,rand(0,strlen($str)-1),1); } return $rand;}
上面代码是用来网页显示5个数字,只要网页一刷新数字就变了,能不能固定8分钟内刷新网页数字不变?请问代码怎么写?
回复讨论(解决方案)
生成后存入session,并加上生成时间,刷新时,获取session判断当前时间和生成时间的时间差是否大于8分钟
生成后存入session,并加上生成时间,刷新时,获取session判断当前时间和生成时间的时间差是否大于8分钟
写入cookie应该也是可以的吧
生产session 至是在1个浏览器中一样, 换个浏览器就不行了,
你可以用 文件缓存来完成,
设置文件有效期, 设置数值
var_export($arr,true) ; // 数组转换字符串
保存到一个文件中
// temp.php return array( 'value'=>'6位数', 'time'=>time());//引用这个文件,并判断是否过期, 过期更新, 没过期就继续用$arr= include(' temp.php的路径'); // 这样就获取了数据, 并做判断, 就是麻烦了, //你可以把这个功能集成到一个函数中去,以后用着方便
如果考虑到更换浏览器的话,要么就是持久化存储,要么就存memcache吧
加上生成时间判断时间差大于8分钟更新就好了
时间戳做随机种子,可以通过算法保证在X分钟内的种子是一致的。
至于不同用户不同,再加上sessionid就不怕出问题了
生产session 至是在1个浏览器中一样, 换个浏览器就不行了,
你可以用 文件缓存来完成,
设置文件有效期, 设置数值
var_export($arr,true) ; // 数组转换字符串
保存到一个文件中
// temp.php return array( 'value'=>'6位数', 'time'=>time());//引用这个文件,并判断是否过期, 过期更新, 没过期就继续用$arr= include(' temp.php的路径'); // 这样就获取了数据, 并做判断, 就是麻烦了, //你可以把这个功能集成到一个函数中去,以后用着方便
看不太懂,能说下具体的吗?下面是全部代码
<?php$lastNo=$this->getGameLastNo(14); header('Content-type: application/xml');echo'<?xml version="1.0" encoding="utf-8"?>';echo '';/* 生成随机数 */function randKeys($len=5){ $str='0123456789'; $rand=''; for($x=0;$x<$len;$x++){ $rand.=($rand!=''?',':'').substr($str,rand(0,strlen($str)-1),1); } return $rand;}?>
session加IP
将固定的随机数放到数组中也是可以的,至于时间的设定,可以用js的定时器完成,定时请求一个ajax的方法,这个方法去php页面数组中拿数字