我们有一个会话注销脚本,例如:
<?php
//24 2 2015
session_start();
session_destroy();
header("location:login.php")
?>
现在,此脚本登录并将其重定向到登录页面,需要再次登录用户名和密码。
如果我想进行临时注销,登录后将我们将我们引向一个只需要密码的登录页面,因为会话不会被销毁,并且用户名被传递到该页面...
因此,当您输入密码时,它将在数据库表中检查输入,其中用户名= session用户名。
希望我很清楚。
更新::
templogout.php
<?php
//24 2 2015
session_start();
$_SESSION['temp_logout'] = true;
header("location:templogin.php")
?>
templogin.php
<?php
//24 2 2015
session_start();
?>
<form id="msform" action="templogincheck.php" method="post">
<fieldset>
<input type="password" name="password" placeholder="Enter password here" required />
<button type="submit" name="submit" class="submit action-button"> LogIn </button>
</form>
templogincheck.php
<?php
//15 2 2015
session_start();
$Cser =mysqli_connect("localhost","text","text","text") or die("Server connection failed : ".mysqli_error($Cser));
$password = md5($_REQUEST["password"]);
$mobile = $_SESSION['mobile'];
$s = "select * from users where password = '".$password."' and mobile = '".$mobile."'";
$result = mysqli_query($Cser,$s);
$count = mysqli_num_rows($result);
if($count>0)
{
$_SESSION["mobile"] = $mobile;
$_SESSION["login"]="1";
header("location:/index.php");
}
else
{
header("location:/templogin.php");
}
?>
index.php
<?php
//15 2 2015
session_start();
unset($_SESSION["temp_logout"]);
if(!isset($_SESSION["login"]))
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>
第一个LoginCheck Page
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");
您可以将"temp_logout"
字段添加到$_SESSION
变量,当您将用户重定向到登录页面时,您可以检查 $_SESSION["temp_logout"]
,如果它是正确的,请在输入中添加用户名字段。
注销脚本:
<?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"]);
?>
另外,在网站上的任何地方,不要忘记检查用户是否临时登录;然后立即将他重定向到登录页
这确实取决于您的平台:您只能拆除诸如password
之类的东西,而不是销毁会话,
unset($_SESSION['password']);
或设置会话中的另一个键:
$_SESSION['loggedIn'] = false;
并重定向到登录页面。
您也可以将用户名放入cookie和销毁会话中。
setCookie
如果要将用户名存储在cookie中,则最好出于安全原因加密。