我有一個登錄問題,它檢查html表單,它的信息是正確的,它會登錄到登錄頁面。我在登錄頁面上設置用戶名和用戶ID信息被檢查後,但服務器似乎不會保存信息。奇怪的是,如果我註銷,然後使用該網站的運作登錄上註冊,登錄我檢查信息然後設置用戶名到一個變量然後做會話不會保存任何變量
if(empty($_SESSION['username']))
{
echo "Somthing went wrong";
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=logout.php">';
}
的用戶名等,但一旦我去這個不會再次觸發該網站第一次在一段時間內我需要查看註銷頁面之前,我可以註銷即使我沒有登錄,當然註銷只會破壞會話。
if (isset($_POST["Username"]) && !empty($_POST["Username"])) {
$salt= "";
$username23 = mysql_real_escape_string($_POST['Username']);
$thereusername = strip_tags($username23);
$password2= sha1 ($salt.$_POST["password"]);
$statement = $db->prepare("SELECT * FROM users WHERE username = ? AND password = ? ");
$statement->execute(array($thereusername,$password2));
$count = $statement->rowCount();
/// If usernam and password match we carry on
if ($count == "1"){
$username23 = mysql_real_escape_string($_POST['Username']);
$thereusername = strip_tags($username23);
$statement8 = $db->prepare("SELECT * FROM users WHERE username = ? ");
$statement8->execute(array($thereusername));
$count8 = $statement8->fetch();
$username233 = mysql_real_escape_string($count8['id']);
$_SESSION['userid'] = strip_tags($username233);
$_SESSION['username'] = $thereusername ;
if(empty($_SESSION['username'])){
echo "Somthing went wrong";
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=logout.php">';
}
if(empty($_SESSION['userid']))
{
echo "Somthing went wrong";
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=logout.php">';
}
echo "You are now being logged in";
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=dashboard.php">';
exit;
echo "works";
}
};
?>
。
<form action="login.php" method="post">
<div class="row">
<div class="form-group col-sm-6">
<label for="exampleInputEmail1">Username</label>
<input class="form-control" type="text" value="Artisanal kale" name= "Username" id="Username">
</div>
<div class="form-group col-sm-6">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" name= "password" id="password"placeholder="Password">
</div>
</div>
<div class="row">
<div class="col-sm-4">
<p> <input type="submit" value="Submit" class="btn theme-btn"> </p>
</div>
</div>
</form>
我當然是在頁面的頂部使用會話開始後,我登錄它帶我到登錄頁面,但不會顯示用戶名或任何信息香港專業教育學院做了print_r的會議,並得到陣列()我然後去logout.php和登錄和所有作品完美的服務器錯誤或PHP錯誤?
1.不要混合'mysql'和PDO。 2.不要編寫自己的密碼哈希邏輯,而應使用'password_hash()'。 3.用'session_start()'開始你的腳本。 – jeroen
session_start()位於頁面頂部:)總是被告知要在所有內容之前將其添加到頂端 – shadow
我覺得奇怪的是我註銷/破壞了會話並且所有工作都正常 – shadow