嘗試從當前頁面執行註銷。基本上,如果你點擊註銷,它會再次顯示登錄表單。我不想打電話給這個頁面。當我執行「註銷」按鈕時,它仍然顯示用戶登錄,但如果我再次點擊「註銷」按鈕,它可以正常工作。或者,如果我刷新頁面,它也可以。看起來最初提交的「註銷」不刷新。註銷 - 必須按兩次才能使用它?
<?
session_start();
$subtitle="Login";
ob_start();
// require("header2.php");
//Get any form data.
$football->WhoOnlineDelete;
$username=$_POST['username'];
$password=$_POST['password'];
global $conn;
$conn = mysqli_connect("localhost","","", "");
function logOut()
{
unset($_SESSION['user']);
unset($_SESSION['uname']);
\t session_destroy();
ob_start();
exit();
}
if ($_POST)
{
//Make sure cookies are enabled.
// if ($_COOKIE["football"]=="")
// {
// $football->ErrorMessage("You must use a browser that supports cookies and<br> have them enabled in order to access this site.");
// }
// else
// {
//Check input.
if ($username=="")
{
echo "Please enter a username.";
}
elseif ($password=="")
{
echo"Please enter your password.";
}
else
{
//Verify the password and redirect to default page if correct.
$sql=mysqli_query($conn, "select * from phpfb_users where user = '".$username."'");
$row = mysqli_fetch_object($sql);
$rows = mysqli_num_rows($sql);
if($rows == 0)
{
echo "User '".$username."' not found.";
}
elseif (md5($password) != $row->password)
{
echo "Incorrect password, please reenter.";
}
else
{
$user=$row->user;
if ($row->name =="") {
$uname=$row->user;
} else {
$uname=$row->name;
}
$_SESSION['uname'] = $uname;
$_SESSION['user'] = $user;
header("Location: loginJERRY.php");
}
}
}
//}
else
{
//Set test cookie.
setcookie("football","peanutbutter",0,"/",$football->domain,0);
}
?>
<div>
<div style="display:block;margin:0px auto;" background-color="lightblue;">
<?php if(empty($_SESSION["user"])) { ?>
<form name="loginform" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
\t <div class="error-message"><?php if(isset($message)) { echo $message; } ?></div> \t
\t <div class="field-group">
\t \t <div><label for="login">Username: </label>
\t \t <input name="username" type="text" class="input-field">
\t
<label for="password">Password:</label>
\t \t <input name="password" type="password" class="input-field">
<input type="submit" name="login" value="Login" class="form-submit-button"></span></div>
\t </div>
</form>
<?php
} else {
\t $result = mysqli_query($conn,"SELECT * FROM phpfb_users WHERE user='".$username."' and password = '".$password."'");
\t $row = mysqli_fetch_array($result);
?>
<br><br>
<form action="" method="post" id="frmLogout">
<div class="member-dashboard">Welcome <?php echo $user; ?>, You have successfully logged in!
<input type="submit" name="logout" value="logout" class="logout-button"></div>
</form>
<?
if (isset($_POST['logout'])) {
if ($_POST['logout'] == 'logout') {
logOut();
} else if ($_POST['logout'] != 'logout') {
}
}
?>
</div>
</div>
<?php } ?>
</body>
<script type='text/javascript'>
document.loginform.username.focus();
document.loginform.username.select();
</script>
我缺少的東西?
直到頁面呈現內容之後,纔會將它們註銷... –
嘗試將表單動作更改爲類似'index.php'的東西,並查看是否可以解決此問題。或者,如果您想讓用戶回到同一頁面,請在表單上填寫if(isset($ _ POST ['$ var])'語句以檢查數據是否已被解析如果有,請不要輸出表格 –
你的代碼非常容易受到黑客攻擊,請不要自行構建,我建議你使用預構建的PHP框架組件(就像Laravel一樣) – Leonard