要随机页面PHP(Going to a Random page PHP)

2019-10-29 02:37发布

我有一个链接,去http://example.com/random.php ,代码下面random.php。

<?php
srand ((double) microtime( )*1000000);
$random_number = rand(1,100);
header( "Location: http://example.com/test?page=$random_number" ) ;
?>

基本上我想要它做的是链接到一个随机页面。 它的工作原理开始,但第一个点击之后它保持连接回到同一所谓随机页面每一次。 任何想法如何解决这一问题? 也许更好的方式来完全解决这个问题?

Answer 1:

无论您的浏览器或服务器可能缓存的页面。 在你的PHP代码试试这个:

header("cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0");


Answer 2:

我的猜测是Web浏览器缓存位置重定向。 尝试添加一些“缓存无效”头到页面顶部

<?php
    //from http://php.net/header
    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

    srand ((double) microtime( )*1000000);
    $random_number = rand(1,100);
    header( "Location: http://example.com/test?page=$random_number" ) ;
?>

免责声明 :如果您在使用本作不可告人的目的,一个怪胎诅咒现寄托在你们身上,你会在短期内一个绿蓝食用。



Answer 3:

你一定microtime中()支持您的操作系统,否则要重新播种瓦特/相同的值.. “此功能仅适用于在支持gettimeofday()系统调用的操作系统”



Answer 4:

正如其他人所指出的那样,这听起来像浏览器缓存重定向; 有各种类型的HTTP重定向的,并且取决于状态代码,浏览器可以或可以不被允许缓存重定向。

你可以尝试改变响应代码发出303 See Other ,这是一种重定向用户代理不应该缓存。 例如:

header( 'Location: http://www.example.com', true /* overwrite */, 303 );

有关HTTP重定向代码,看一看的信息越多HTTP 1.1规范 ; 具体部分10.3,它与重定向的交易。



Answer 5:

你有没有试过调用这srand() ? 在PHP的文档srand说:

:自PHP 4.2.0开始,就没有必要用srand随机数发生器()或mt_srand(),因为这是现在自动完成。



Answer 6:

我不知道这可能是您的浏览器缓存重定向做。



Answer 7:

如果缓存变得太多,你的问题,你无法通过PHP来实现,你可以写一个小的JavaScript做同样的和放心,您将获得每次随机链接。


function jump() {
var random = Math.floor(Math.random()*1000);

window.location="test?page="+random;
}



Answer 8:

嗯...你的代码工作,兄弟; 也许你误解的概念,并认为重装你已经到达的页面应该带你到另一个随机生成的网址...



文章来源: Going to a Random page PHP
标签: php random