我試圖在我的網站上實現一個簡單的用戶/登錄界面。無法讓PHP會話「記住」刷新數據
我可以使用標準HTML表單檢查輸入數據庫的「登錄」,但在成功登錄後刷新頁面時,用戶名/密碼輸入會丟失。
我做了一些研究,發現會話變量是解決這個問題的一種方法。所以我添加了一個「session_start();」在每個相關頁面的頂部(login.php,index.php)。不過,我無法刷新頁面並保持「登錄狀態」。
下面的代碼:
的login.php -
<?php
session_start();
include "db_connect.php";
?>
<html>
<body>
<h3>Login form:</h3>
<form action='index.php' method='POST'>
User:
<input type="text" name="user">
Pass:
<input type="password" name="pass">
<br><br>
<input type="submit" value="Login">
</form>
</body>
</html>
的index.php -
<?php
session_start();
$_SESSION['user'] = $_POST['user'];
$_SESSION["pass"] = $_POST['pass'];
$session_user = $_SESSION['user'];
$session_pass = $_SESSION['pass'];
?>
<html>
<head>
</head>
<body>
</body>
</html>
<?php
include "../db_connect.php";
$sql = "SELECT * FROM user WHERE (user = '$session_user' && password = '$session_pass')";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
include "index_detail.php";
}
} else {
echo "There was an error logging in.";
}
?>
在我的代碼記錄和顯示我想要的只是一次,而是所有形式交數據(用戶/通行證)在刷新時丟失。我究竟做錯了什麼?我真的想要捕捉這種「登錄」的感覺。
謝謝。
您試圖通過發佈設置會話變量。所以當你刷新你的頁面時,它不會得到post變量。所以它初始化爲空白。因此,您不必保持登錄。 –
啊,我現在看到了。我能做些什麼來堅持用戶名/密碼呢? –
在互聯網上有好幾個'記住我'的例子。覈實。在你的代碼中,你必須檢查登錄頁面中的會話。如果它具有值,只需將其加載到輸入標籤中即可。 –