繁体   English   中英

PHP Include 页面内容不刷新

[英]PHP Include page content does not refresh

我这里有一个严重的问题。 我创建了一个带有会话的用户系统。 问题是有些内容只有在登录后才能看到。例如,在导航栏中,登录按钮被替换为帐户按钮。

现在我的问题是:每个页面都包含 navbar.php。 例如在index.php中是这样写的:

<body>
<?php include("navbar.php")?>
</body>

login.php 重定向到 index.php:

header("Location: index.php");

但是 index.php 没有刷新。 用“F5”硬刷新后,一切都很好。

我还尝试了元标记来防止在缓存中加载页面。

有任何想法吗?

索引.php:

<html lang="en">
<head>
    ...
</head>
<body >
<?php include("navbar.php")?>
    <div id="wrap">
    ...
    </div>
</body> 
</html>

导航栏.php

<div class="navbar">
    <?php
    session_start();
    if (!isset($_SESSION['logged']) || !$_SESSION['logged']) 
    {?>
      ...Sign in etc...
    <?php
    }
    else
    {?>
        ...Accounting...
    <?php
    }?>
</div>

登录.php:

<html>
<head>
</head>
<body>
<?php include("navbar.php"); ?>
<div class="container">
  <form class="form-signin" action="logon.php" method="post" >
        ...
    <button type="submit">Login</button>
  </form>
</div>
</body>
</html>

登录.php:

<?php
if login successfull //pseudo code
    header("Location: http://www.***.com/index.php");
}
else 
{
    header("Location: http://www.google.de");
}
exit;
?>

将其添加到您的 .htaccess 文件中。 这将禁用这些文件扩展名的浏览器缓存

 <FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$">
 Header unset Cache-Control
 </FilesMatch>

根据规范,您必须传递绝对 uri。
最好在重定向时添加:

header('HTTP/1.1 301 Moved Permanently');
header('Location: https://www.google.com');

用于 SEO 目的和浏览器缓存(用谷歌搜索以了解更多信息)。
我希望您已经知道这一点,但您还必须确保没有向客户端发送任何输出,因为在这种情况下,标头已经发送,并且逻辑表明现在更改它们为时已晚。

检查此问题以获取有关如何处理标头和输出缓冲的更多详细信息。

我这里有一个严重的问题。 我创建了一个带有会话的用户系统。 问题是有些内容只有在您登录时才能看到。例如,在导航栏中,登录按钮被替换为帐户按钮。

现在我的问题:每个页面 php 都包含 navbar.php。 比如在index.php中是这样写的:

<body>
<?php include("navbar.php")?>
</body>

login.php 重定向到 index.php:

header("Location: index.php");

但是 index.php 不会刷新。 用“F5”硬刷新后,一切都很好。

我还尝试了元标记来防止在缓存中加载页面。

有任何想法吗?

索引.php:

<html lang="en">
<head>
    ...
</head>
<body >
<?php include("navbar.php")?>
    <div id="wrap">
    ...
    </div>
</body> 
</html>

导航栏.php

<div class="navbar">
    <?php
    session_start();
    if (!isset($_SESSION['logged']) || !$_SESSION['logged']) 
    {?>
      ...Sign in etc...
    <?php
    }
    else
    {?>
        ...Accounting...
    <?php
    }?>
</div>

登录.php:

<html>
<head>
</head>
<body>
<?php include("navbar.php"); ?>
<div class="container">
  <form class="form-signin" action="logon.php" method="post" >
        ...
    <button type="submit">Login</button>
  </form>
</div>
</body>
</html>

登录.php:

<?php
if login successfull //pseudo code
    header("Location: http://www.***.com/index.php");
}
else 
{
    header("Location: http://www.google.de");
}
exit;
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM