PHP标题位置 - 保持刷新 - 使用exit()它不会显示页面(空白页面)

时间:2016-07-15 15:04:12

标签: php mysql ajax url http-headers

我使用PHP标头位置使用MySQL数据库中的参数更改URL。

<?php
    include ('databaseconn.php');
    include ('search.php'); 
    header('Location: http://localhost:8888/docs/document.php?UniqueKey='.$row['UniqueKey']);
    exit();
?>

我的数据库中有大约1000行,每行包含一个UniqueKey,如: 46fF5 。每次刷新浏览器时,它都会从我的数据库中调用随机行,包括与该行对应的UniqueKey。

我想要什么

我想刷新页面,浏览器中的链接会自动更新。所以我可能有:localhost:8888 / docs / document.php?UniqueKey = 12dF2。如果我刷新(F5),我希望NEW行在地址栏中显示其UniqueKey。

问题

exit(); 函数返回空白页面。如果我删除它,页面将继续循环通过不同的唯一键,仍然会产生一个空白页面(由于2 包含php文件,它会为新行保持刷新)。

我使用了IF语句:

if(!isset($_GET['UniqueKey'])) { header loc code }

但是它只会改变ONCE,当我刷新页面时,它会保留它找到的第一个UniqueKey。

我不知道该怎么做。我试过&#34;一切&#34;。有什么想法吗?

修改

显然我需要包含connection和search.php文件,所以这里是:

databaseconn.php

$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "mydatabase";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

的search.php

很多代码,但这是重要的部分(我推测):

$sql = "SELECT * FROM documents order by RAND()";
$result = $conn->query($sql);
$row = $result->fetch_assoc();

2 个答案:

答案 0 :(得分:0)

只需使用SESSION即可。下面的示例只显示了这个想法,您可以根据需要轻松更改代码:

<?php
    session_start();
    error_reporting(E_ALL);
    if($_GET['rand'] == $_SESSION['rand'] || !$_GET['rand']){
        $rand = mt_rand(1,1111111);
        header("Location: ".$_SERVER['PHP_SELF']."?rand=".$rand);
    }else{
        $_SESSION['rand'] = $_GET['rand'];
    }
    print_r($_SESSION);
?>

每次刷新后,GET参数都会根据需要不同。

答案 1 :(得分:0)

接下来是一个如何使用不同的键每次刷新页面的示例,因此您可以将它与您自己的(每次刷新后随机键显示在地址栏中)进行比较,正如您所说,刷新必须与点击一下按钮:

<强> zzz.php

<html>
  <head>
  </head>
  <body>
    Current key :
<?php
// CHECK IF PAGE IS RETURNING FROM YYY.PHP.
if ( isset( $_GET[ "key" ] ) )
     echo $_GET[ "key" ];
else echo "No key";
?>
    <form action="yyy.php">
      <input type="submit" value="Refresh"/>
    </form>
  </body>
</html>

<强> yyy.php

<?php
// REPLACE NEXT ARRAY WITH THE SQL QUERY.
$keys = array( "111","222","333","444","555","666","777","888","999" );
$index = rand( 0,count( $keys )-1 );
header( "Location: zzz.php?key=" . $keys[ $index ] );
?>

将以前的代码复制到具有给定名称的文件中(&#34; zzz.php&#34;和&#34; yyy.php&#34;,抱歉文件名缺乏创造力),并打开&# 34; zzz.php&#34;在浏览器中。

我们无法查看您的所有代码,因此很难准确找出问题所在。