Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当页面通过HREF链接到时,PHP不会重新加载_Php_Html - Fatal编程技术网

当页面通过HREF链接到时,PHP不会重新加载

当页面通过HREF链接到时,PHP不会重新加载,php,html,Php,Html,我以前试着解释过,但这很奇怪 我有一个页面依赖于数据库中的变量,该变量可以在页面上进行更改。每次运行页面上的代码时,都会获得此信息。但是,当更改变量后立即访问此页面时,它不会刷新 所以我做了一些调试并将时间输出到屏幕上。因此,当我改变页面上的变量时,它会重定向到另一个页面。我通过索引页面上的href链接输入。时间还是以前。为什么不在每次加载页面时刷新PHP代码 <?php session_start(); require($_SERVER['DOCUMENT_ROOT']."/testin

我以前试着解释过,但这很奇怪

我有一个页面依赖于数据库中的变量,该变量可以在页面上进行更改。每次运行页面上的代码时,都会获得此信息。但是,当更改变量后立即访问此页面时,它不会刷新

所以我做了一些调试并将时间输出到屏幕上。因此,当我改变页面上的变量时,它会重定向到另一个页面。我通过索引页面上的href链接输入。时间还是以前。为什么不在每次加载页面时刷新PHP代码

<?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这就是问题所在,不管我使用的代码有多少,结果只是以这种方式刷新仍然是个问题。是否有任何方法可以避免在特定站点上进行缓存?然后发布复制缓存的最小代码,这样我们就可以了解您测试的内容。帮助我们帮助你。