网站内的PHP重定向

网站内的PHP重定向,php,wordpress,redirect,refresh,Php,Wordpress,Redirect,Refresh,我已经连续三天尝试这段代码,直到某个时间(分或秒),但无法解决问题 我的目标是将访问者重定向到从文本文件中选择的10个随机URL。用户将在一段时间内看到某个页面,然后再次重定向到另一个页面,他将被重定向到的页面数是完全随机的 问题: 问题是访问者没有被重定向到从文本文件中随机选择的任何其他页面,而只是刷新页面。。。但是我想把他从文本文件重定向到其他页面。。希望你们现在明白我的意思了 编辑:找到问题。实际上,$rand_链接的值为NULL。。{[0]=>NULL}不知道为什么。。。。有解决办法吗?

我已经连续三天尝试这段代码,直到某个时间(分或秒),但无法解决问题

我的目标是将访问者重定向到从文本文件中选择的10个随机URL。用户将在一段时间内看到某个页面,然后再次重定向到另一个页面,他将被重定向到的页面数是完全随机的

问题:

问题是访问者没有被重定向到从文本文件中随机选择的任何其他页面,而只是刷新页面。。。但是我想把他从文本文件重定向到其他页面。。希望你们现在明白我的意思了

编辑:找到问题。实际上,$rand_链接的值为NULL。。{[0]=>NULL}不知道为什么。。。。有解决办法吗?检查了“BBnormalLinks.txt”文件的权限,该文件中肯定有一些链接,因为我刚刚检查过

谢谢

代码如下:

<?php // Generate Random Nubmers.. 2 ********
            $numbers2 = range(13,70);

            shuffle($numbers2);

            for ($j=0;$j<1;$j++)
            {
            $numbers2[$j];
            }
                $seconds = numbers2[0];

            //////// For Random URL of Site
            $links = file('BBnormalLinks.txt');
        $rand_link = $links[ mt_rand(0, count($links) - 1) ];                   

                header("refresh:". $seconds .";url=". $rand_link); ?>

据我所知,刷新头似乎不是最可靠的。(我猜并不是所有浏览器都会响应。)既然您正在显示内容,至少在几秒钟内,您可以尝试在JavaScript中使用。比如:

$content = '<script type="text/javascript">window.setTimeout("window.location=\''.$rand_link.'\';", '.($seconds*1000).');</script>';
$content='window.setTimeout(“window.location=\'.$rand\u link.\'.';”,($seconds*1000);

语法是正确的,但可能导致这种情况的一些指针是

  • 在传递标头之前,已输出一些文本
  • 没有生成随机页面,因此会一次又一次地刷新同一页面
  • 我有一种强烈的感觉,你的
    $rand_链接
    返回空白或空


    更新: 经过几次讨论,问题再次出现在邪恶的
    路径上

    $links = file('patotofile\BBnormalLinks.txt');
    
    正如baburao113所引用的那样

    我不得不把那个文件移到wordpress主题文件夹lol!问题已解决:)


    如果不知道“BBnormalLinks.txt”的内容或$rand_link的最终值,就很难准确地说出到底出了什么问题

    您对
    file()
    mt_rand()
    的使用似乎是正确的,尽管您没有采取任何措施来确保获得有效的URL


    这纯粹是猜测,但我怀疑您没有正确配置PHP以显示错误。如果文件加载失败,$links将在倒数第二行中有一个空值。然后,您将尝试访问空数组的元素0并接收空值。这将导致
    标题('refresh:2;url=')
    ,您的页面将只需每隔2秒刷新一次。

    这个旋转木马有什么意义?在使用$rand\u link之前,您是否尝试过调试它的值?另一方面,为什么在与您的问题似乎没有任何关系的情况下包含那些关于$numbers2的行?您可以向我们展示数组
    $links
    ?@shrapanel:lol!:P我正试图用它来构建一些东西……@Farray:我用它来测试它。无论如何,我现在正在编辑它,并用“$numbers2[0]”替换2,它实际上是一个随机数生成器。我可以保证,BBnormalLinks.txt很好。它只有10个URL。我自己写下来的。当我回显“$rand_link”时,它会在页面上打印url。这就是我现在发火的原因。@baburao113因为你已经研究这个问题3天了,你不应该保证你的代码的任何部分都是好的。不管怎样,请再次阅读我的答案。我的建议是您没有正确加载文件。调试这个的一种方法是注释掉你的标题行,并放置
    echo$rand_link
    ,只是为了验证URL是否正确地从你的文件加载。我是个无言以对的家伙。。我说我已经做了。。。。。。请阅读我的最后一条评论:\@baburao113老实说,在你向我保证你的文件很好之后,我没有对你的其余评论给予太多关注。如果您已经采取步骤调试问题,则应在问题中详细说明步骤和结果。有很多人会帮助你,但是你让事情变得很困难。好吧,伙计。。。我刚刚做了“var_dump($rand_link);”,发现所有的值都是空的。。谢谢你,伙计。。。在搜索了一个只使用php的方法并得出不可能的结论后,您的解决方案是我最后的选择。很高兴我能提供帮助。你是说你放弃了刷新标题吗?是的,我放弃了刷新标题。。我不知道为什么当我在一个空文件中使用你的代码进行测试时,它会起作用,当我在我的完整代码中使用它时,它不会起作用,除非我在你的脚本中更改PHP变量,比如$rand_link to和$seconds to 5。我的完整代码中还有一个倒计时。。一个是您在这里共享的上述代码。另一个是完整的代码。我不能在这里分享完整的代码。听起来好像在构建“内容”时没有设置变量。请查看源代码并查找
    setTimeout
    行,以查看变量是否已向内容传递了合法的内容。您可以有任意多的超时。可能会有一些javascript终止所有超时,但我对此表示怀疑(但请继续检查)。