Php 在不关闭会话的情况下注销会话

Php 在不关闭会话的情况下注销会话,php,session,Php,Session,我们有一个会话注销脚本,如: <?php //24 2 2015 session_start(); session_destroy(); header("location:login.php") ?> 这实际上取决于您的平台: 您只能取消设置密码之类的内容,而不是销毁会话 unset($_SESSION['password']); 或在会话中设置另一个密钥: $_SESSION['loggedIn'] = false; 并重定向到登录页面 您还可

我们有一个会话注销脚本,如:

<?php
    //24 2 2015
    session_start();
    session_destroy();
    header("location:login.php")
?>

这实际上取决于您的平台: 您只能取消设置密码之类的内容,而不是销毁会话

unset($_SESSION['password']);
或在会话中设置另一个密钥:

$_SESSION['loggedIn'] = false;
并重定向到登录页面

您还可以将用户名放入cookie并销毁会话

如果您想在cookie中存储用户名,出于安全原因,最好对其进行加密。

您可以在
$\u SESSION
变量中添加一个
“temp\u logout”
字段,当您将用户重定向到登录页面时,您可以检查该字段是否为
$\u SESSION[“temp\u logout”]
,如果为真,在输入字段中添加用户名

注销脚本:

<?php
    //24 2 2015
    session_start();
    $_SESSION['temp_logout'] = true;
    header("location:login.php")
?>

登录页面:

<form id="msform" action="ulogincheck.php" method="post">
  <fieldset>
    <h2 class="fs-title">LogIn</h2>
    <h3 class="fs-subtitle">Please Enter your details accordingly<br/><br/> <small>(case sensitive)</small></h3>
      <input type="text" name="email" placeholder="Email" required />
      <input type="text" name="mobile" placeholder="Mobile" required />
      <input type="password" name="password" placeholder="Password" required />
    <button type="submit" name="submit" class="submit action-button"> LogIn </button>
</form>
session_start()
...
//where the "username" input is
<input name="username" <?php if(isset($_SESSION["temp_logout"]){
    echo 'value="'.$_SESSION["username"] .'" ';
} ?> />
...
session_start()
...
//其中“用户名”输入为

此外,在网站的任何地方,不要忘记检查用户是否临时注销;然后立即将他重定向到登录页面

因此,
@harishk检查我的answer@harishk请与我分享你的代码,这样我就可以检查它。但是,密码永远不应该放在会话变量中。这是一个很好的解释。。但是,如果在注销后,用户被重定向到登录页面,其中只有输入密码,并且在他输入和登录时,在logincheck.php页面中,我们可以获得用户名以检查数据库表吗?(我希望我很清楚)是的,用户名仍然在
$\u SESSION[“username”]
变量中,只是不要忘记SESSION\u start()(你必须把它放在每个使用
$\u SESSION
的php文件的开头)我用你的建议更新了这个问题。。。但它似乎有一个小故障。。。。希望我是清楚的…输入密码后,它只会指示我登录页面。
$\u会话[“mobile”]
?用户手机号码
session_start();
$email = $_REQUEST["email"];
    $mobile = $_REQUEST["mobile"];
    $password = md5($_REQUEST["password"]);


    $s = "select * from users where email='".$email."' and password = '".$password."' and mobile = '".$mobile."'";

    $result = mysqli_query($Cser,$s);

    $count = mysqli_num_rows($result);

    if($count>0)
    {
        $_SESSION["email"] = $email; 
        $_SESSION["mobile"] = $mobile;
        $_SESSION["login"]="1";
        header("location:/index2.php");
    }
    else
    {
           header("location:/usersignin.php");   
unset($_SESSION['password']);
$_SESSION['loggedIn'] = false;
<?php
    //24 2 2015
    session_start();
    $_SESSION['temp_logout'] = true;
    header("location:login.php")
?>
session_start()
...
//where the "username" input is
<input name="username" <?php if(isset($_SESSION["temp_logout"]){
    echo 'value="'.$_SESSION["username"] .'" ';
} ?> />
...
<?php
    session_start();
    unset($_SESSION["temp_logout"]);
?>