当前位置: 首页 > 知识库问答 >
问题:

页面刷新后会话被破坏

上官华池
2023-03-14

我ogin.php

<?php
    session_start();
    
    $server = "localhost";
    $user = "...";
    $pass = "...";
    $database = "...";
    
    $verbindung = mysqli_connect($server, $user, $pass, $database)
            or die("Verbindung konnte nicht hergestellt werden.");
   
        $Email = $_POST["Email"];
        $Passwort = $_POST["Passwort"];
        
        $sql = "SELECT passwort FROM accounts WHERE email = '".$Email."'";
        $hashPasswort = mysqli_query($verbindung, $sql);
        $VerifyHash = mysqli_fetch_assoc($hashPasswort);

        if(password_verify($Passwort, $VerifyHash['passwort']))
        { 
            session_regenerate_id();
            $_SESSION['email'] = $Email;
            echo "<script type='text/javascript'>
            window.location.replace('...');
            </script>";
        }
        else
        {
        echo '<script type="text/javascript">
        window.location.replace("...");
        </script>';
        }
        
$return = mysqli_close($verbindung);
    if (!$return) {
      echo "<p>Die Verbindung mit dem Server konnte nicht geschlossen werden.</p>";
    }
?>

指数php

<?php
    session_start();
    if (!isset($_SESSION['email'])) {
        header('Location: Login.php?login=loginRequired');
        exit;
    }
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=0.85">
        <link rel="icon" type="image/png" href="../Bilder/favicon.ico"/>
        <meta http-equiv='X-UA-Compatible' content='IE=edge'>
        <title>Erste-Hilfe Kurs</title>
        <meta name='viewport' content='width=device-width, initial-scale=1'>
        <link rel='stylesheet' type='text/css' media='screen' href='../CSS/main.css'>
        <link rel='stylesheet' type='text/css' media='screen' href='../CSS/index.css'>
    </head>
    <body>
        <header>
            <div class="container">

                <a href="https://www.litec.ac.at/"><img src="../Bilder/Litec.png" alt="Litec" class="logo"></a>
                <a href="https://www.roteskreuz.at/home/"><img src="../Bilder/RotesKreuz2.png" alt="Litec" class="logo"></a>
                <nav>
                    <ul>
                        <li><a href="Index.php"><b><u>Home</u></b></a></li>
                        <li><a href="UeberUns.php">Über uns</a></li>
                        <li><a href="Anmeldung.php">Anmeldung</a></li>
                        <li><a href="Impressum.php">Impressum</a></li>
                        <li><a href="<?php session_destroy();?> Login.php">LOGOUT</a></li>
                    </ul>
                </nav>
            </div>
        </header>
        <label id="email"></label>
        <?php echo("{$_SESSION['email']}"."<br />");?>
    </body>
</html>

我做了一个登录脚本,打开,如果密码是正确的,我ndex.php网站。当第一次通过登录脚本打开ndex.php网站时,一切正常,会话设置完毕。但是在我刷新页面后,会话会被破坏,并且没有设置。那么我如何保存会话,这样它就不会因为刷新浏览器而被破坏呢?

共有1个答案

宋臻
2023-03-14

这一行在索引中。php破坏您的会话:

<li><a href="<?php session_destroy();?> Login.php">LOGOUT</a></li>
                   ^^^^^^^^^^^^^^^^^

要实现注销过程,可以链接到另一个php文件并执行session_destroy() 那里-例如。

 类似资料:
  • 成功登录后,我将保存会话变量。 当用户转到应用程序中的不同页面时,会话就消失了,即使我没有显式地销毁会话。我该怎么解决这个问题? 这是一个会话似乎消失的页面。 在中,我有会话开始方法。

  • 问题内容: 在我的本地路由http:// localhost:9000 /#/ deviceDetail /中, 我有一个控制器来管理该视图。在进入该视图之前,我将一些变量设置为( 例如)。 一旦进入该视图,我就可以访问仪表盘属性,但是例如当我用键刷新页面时,该属性仪表盘就会丢失。 我试图将localSave变量保存,但是该方法遇到了循环引用问题。 有什么技巧可以解决吗? 问题答案: Angula

  • 我制作了一个非常简单的登录和会话结构,以便在未来基于JSP的应用程序中重用。是这样的: 而位于WebContent根目录的login.jsp页面有一个 表单,其中包含用于身份验证的专用innerHTML和一个用于接收会话超时或登录失败消息的${failure}字段。 这个结构对我来说很管用。它拦截、请求登录、检查会话和身份验证,等等,但有一个小缺陷:如果您在登录页面并在超时后刷新它(F5或在URL

  • 问题内容: 众所周知,在使用hibernate模式(甚至在HQL中)对数据库进行批量更新时,所做的更改不会复制到当前会话中存储的实体中。 因此,我可以调用session.refresh将修改内容加载到我的会话实体中。 我们经常调用flush将修改发送到数据库,但是文档说它“同步”了会话和数据库。 这是否意味着flush能够为我的会话实体设置良好的新db值?否则flush最终将使用存储在实体中的旧数

  • 问题内容: 好的,我有一个仅包含的简单表格。当我们点击submit(通过ajax存储)时,在文本字段中写入的数据将存储在DB中。Ajax可以正常工作并提交数据,但是,页面会自动刷新,并且URL包含输入字段的内容。 我的表格: 阿贾克斯:- PHP的:- 结果显示在后,页面将刷新,URL变为: -chat.php?message = 454545&submit_message = 为什么要刷新页面?

  • 本文向大家介绍页面刷新时sessionStroage会变(会清空)吗?相关面试题,主要包含被问及页面刷新时sessionStroage会变(会清空)吗?时的应答技巧和注意事项,需要的朋友参考一下 不会 SessionStroage 是数据页面会话级别的, 当你在打开这个页面的时候会被创建, 并且重新加载或恢复页面仍会保持原来的页面会话... 当你在关闭对应浏览器Tab的时候会被清出