Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Php 会话销毁工作,但我需要按F5每次看到新的更新有什么解决方案吗?_Php_Session - Fatal编程技术网

Php 会话销毁工作,但我需要按F5每次看到新的更新有什么解决方案吗?

Php 会话销毁工作,但我需要按F5每次看到新的更新有什么解决方案吗?,php,session,Php,Session,当我登录时,我会在主页中重定向,当我按logout时,我会破坏我的 会话和重定向在同一页面中,有新的更新,但仅当我按F5时 layout.php <?php session_start(); if (!isset($_SESSION['login'])) {?> <ul> <li><a href="?controller=user&action=inscription">Inscription<

当我登录时,我会在主页中重定向,当我按logout时,我会破坏我的

会话和重定向在同一页面中,有新的更新,但仅当我按F5时

layout.php

          <?php
  session_start();
  if (!isset($_SESSION['login'])) {?>
  <ul> 
    <li><a href="?controller=user&action=inscription">Inscription</a></li>
    <li class="login">
      <div id="loginContainer"><a id="loginButton"><span>Se Connecter</span></a>
        <div id="loginBox" style="display: none;">                
          <form id="loginForm"  method="POST" action="?controller=user&action=authentification">
            <fieldset id="body">
              <fieldset>
                <label>Login</label>
                <input type="text" name="login" id="email" >   
              </fieldset>
              <fieldset>
                <label for="password">Mot de passe</label>
                <input type="password" name="password" id="password">
              </fieldset>
              <input type="submit" id="login" value="Connexion" name="xxl1">
              <label for="checkbox"><input type="checkbox" id="checkbox"> <i>Rester Connecté</i></label>
            </fieldset>
            <span><a href="#">Mot de passe oublié?</a></span>
          </form>
        </div>
      </div>
    </li>
  </ul>
 <?php 
 } else { $name = $_SESSION['login'] 
 ?>
  <h1  style="
  font-size: 19px;
  font-family: inherit;
  margin-right: -1px;
  margin-top: 1px;
  ">
   Bonjour <?php echo $name ?>
    </h1>
  <a href="?controller=user&action=dashboard" style="
  font-size: 12px;
  font-family: inherit;
  margin-right: -1px;
  margin-top: 1px;
  "> Editer mon profil
   </a>
   <a href="?controller=user&action=deconnexion" style="
  font-size: 12px;
  font-family: inherit;
  margin-right: -1px;
  margin-top: 1px;
  "> Deconnexion
   </a>
  <?php } ?>
</div>
如果有任何解决方案或建议,使我的代码更好地告诉我


要销毁会话,您应该执行以下操作:

$_SESSION = array();
session_unset();
session_destroy();
然后,将用户重定向到另一个页面——在检查会话变量后,可以使用js完成

从文件中:

为了完全终止会话,还必须取消设置会话ID。如果使用cookie传播会话ID(默认行为),则必须删除会话cookie。setcookie()可用于此目的

您可以看到它们如何在同一链接上销毁cookie:

// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

试试看是否有用。

最好做一个PHP重定向
标题('位置:http://example.com/?controller=accueil&action=home');退出,您不需要先转到客户端并重定向到那里。也许你的问题已经解决了。你能给我解释一下出口吗;请在末尾?当您在服务器端重定向时,通常在重定向后不应运行任何内容,因此通常在
header()
行后添加一个出口。我做了你让我做的事情,但还是一样的事情不起作用。我仍然需要按F5:/会话被破坏,但每次我都需要按F5来查看新的updateAdded cookie删除信息-尽可能随时测试它。
$_SESSION = array();
session_unset();
session_destroy();
// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}