我正在使用 PHP header 位置通过 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),我希望新行在地址栏中显示其 UniqueKey。
问题
exit();函数返回一个空白页。如果我删除它,页面将继续循环通过不同的唯一键,仍然会导致空白页面(由于 2 个 包含 php 文件不断刷新新行)。
我使用了 IF 语句:
if(!isset($_GET['UniqueKey'])) { header loc code }
但是它只改变一次,当我刷新页面时,它将保留它找到的第一个UniqueKey。
我不知道该怎么办。我尝试了“一切”。有什么想法吗?
编辑
显然我需要包含连接和 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();
最佳答案
只需使用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
参数都会根据您的需要而不同。
关于PHP header 位置 - 不断刷新 - 使用 exit() 它不会显示页面(空白页面),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38399421/