我使用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();
答案 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;在浏览器中。
我们无法查看您的所有代码,因此很难准确找出问题所在。