当页面通过HREF链接到时,PHP不会重新加载
我以前试着解释过,但这很奇怪 我有一个页面依赖于数据库中的变量,该变量可以在页面上进行更改。每次运行页面上的代码时,都会获得此信息。但是,当更改变量后立即访问此页面时,它不会刷新 所以我做了一些调试并将时间输出到屏幕上。因此,当我改变页面上的变量时,它会重定向到另一个页面。我通过索引页面上的href链接输入。时间还是以前。为什么不在每次加载页面时刷新PHP代码当页面通过HREF链接到时,PHP不会重新加载,php,html,Php,Html,我以前试着解释过,但这很奇怪 我有一个页面依赖于数据库中的变量,该变量可以在页面上进行更改。每次运行页面上的代码时,都会获得此信息。但是,当更改变量后立即访问此页面时,它不会刷新 所以我做了一些调试并将时间输出到屏幕上。因此,当我改变页面上的变量时,它会重定向到另一个页面。我通过索引页面上的href链接输入。时间还是以前。为什么不在每次加载页面时刷新PHP代码 <?php session_start(); require($_SERVER['DOCUMENT_ROOT']."/testin
<?php
session_start();
require($_SERVER['DOCUMENT_ROOT']."/testing/ticketsystem/server/databaseconfig.php");
$username = $_SESSION['username'];
$clientstatus = $_SESSION['status'];
$id = $_GET['id'];
function statusBadge($status)
{
switch($status)
{
case "user":
return $status = "<span class='badge badge-user badge-pill badge-default'>User</span>";
break;
case "admin":
return $status = "<span class='badge badge-user badge-pill badge-success'>Admin</span>";
break;
case !$status:
return $status = "<span class='badge badge-user badge-pill badge-danger'>Error</span>";
break;
}
}
?>
<!doctype html>
<html>
<?php $pagetitle = "Ticket System"; require($_SERVER['DOCUMENT_ROOT']."/testing/ticketsystem/includes/head.php"); ?>
<?php require($_SERVER['DOCUMENT_ROOT']."/testing/ticketsystem/includes/navbar.php"); ?>
<body>
<?php
$sql = "SELECT * FROM tickets WHERE id = '$id'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0)
{
while ($row = mysqli_fetch_assoc($result))
{
$active = $row['active'];
echo (date("H-i-s",time()));
echo $active;
$ticketnav = "<ul class='nav nav-pills nav-justified'><li class='nav-item'><a class='nav-link' href='../../admin.php'>Go Back</a></li><li class='nav-item dropdown'><a class='nav-link dropdown-toggle' data-toggle='dropdown' href='#'>Admin Actions</a><div class='dropdown-menu'><a class='dropdown-item' href='activeticket.php?id=$id&active=1'>Close Ticket</a><a class='dropdown-item' href='activeticket.php?id=$id&active=0'>Open Ticket</a></div></li></ul>";
if($active == 0)
{
$ticketreply = "<div class='card'><div class='card-header'><p>Reply</p></div><div class='card-block'><form method='post' action='replyticket.php?id=$id'><div class='form-group'><label class='mr-sm-2' for='message'>Message</label><textarea name='message' class='form-control' rows='4'></textarea></div><button class='btn btn-success' type='submit'>Reply to this Ticket</button></form></div></div>";
}
elseif($active == 1)
{
!$ticketreply;
}
$subject = $row['subject'];
$department = $row['department'];
$message = $row['message'];
$created = $row['created'];
$userid = $row['userid'];
$createdformat = date('d-m-Y H:i:s', strtotime($created));
$tickethead = "<div class='card'><div class='card-header''><p>Support Ticket - #$id</p></div><div class='card-block'><p>Subject: $subject</p><p>Department: $department</p><p>Date: $createdformat</p></div></div>";
$sql3 = "SELECT * FROM users WHERE id = '$userid'";
$result3 = mysqli_query($conn, $sql3);
while ($row3 = mysqli_fetch_assoc($result3))
{
$username2 = $row3['username'];
$messagestatus = $row3['status'];
$ticketinital = "<div class='card'> <div class='card-header'><p><strong>Initial Message</strong></p><p>$username2 - " . statusBadge($messagestatus) . "</p><p>Date: $createdformat</p></div><div class='card-block'><p>Message: $message</p></div></div>";
}
}
echo $ticketnav;
echo $tickethead;
echo $ticketreply;
echo $ticketinital;
$sql = "SELECT * FROM comments WHERE ticketid = '$id' ORDER BY created DESC";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0)
{
while ($row = mysqli_fetch_assoc($result))
{
$userid = $row['userid'];
$message = $row['message'];
$created = $row['created'];
$createdformat = date('d-m-Y H:i:s', strtotime($created));
$sql2 = "SELECT * FROM users WHERE id = '$userid'";
$result2 = mysqli_query($conn, $sql2);
while ($row2 = mysqli_fetch_assoc($result2))
{
$username2 = $row2['username'];
$commentstatus = $row2['status'];
$ticketcomment = "<div class='card'><div class='card-header'><p>$username2 - ". statusBadge($commentstatus) ."</p><p>Date: $createdformat</p></div><div class='card-block'><p>Message: $message</p></div></div>";
echo $ticketcomment;
}
}
}
}
?>
</body>
</html>
听起来像是浏览器上的缓存问题。您可以始终尝试使用标头来防止缓存:
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
我相信现在有一百万种更好的方法可以做到这一点,尽管用谷歌搜索它,找到合适的方法
或者,在更改数据库ID时,将?rand=添加到您链接回的URL中-这样,浏览器通常会尝试重新访问页面,因为随机ID可能已更改:您可以给出代码示例吗?@Stretch0我包含了一些代码。我不明白代码会如何影响它的加载,因为它似乎要等待一段时间才能重新加载;我猜浏览器会在短时间内缓存页面,或者直到您以特定方式刷新页面,这就是PHP代码不会再次运行的原因。尝试创建一个,以便您可以将重新加载问题与会话、数据库等隔离开来。您可能会从中删除100行,但仍会重现该问题,使您和我们都更容易了解发生了什么。@IMSoP这就是问题所在,不管我使用的代码有多少,结果只是以这种方式刷新仍然是个问题。是否有任何方法可以避免在特定站点上进行缓存?然后发布复制缓存的最小代码,这样我们就可以了解您测试的内容。帮助我们帮助你。