我正在使用此代碼在PHP中創建安全登錄頁面。我從http://girlswhogeek.com/tutorials/2006/creating-a-secure-php-login-page得到它。回覆到div而不是空白頁
<?php
$username = "user";
$password = "pass";
$randomword = "bibblebobblechocolatemousse";
if (isset($_COOKIE['MyLoginPage'])) {
if ($_COOKIE['MyLoginPage'] == md5($password.$randomword)) {
?>
CONTENT HERE
<?php
exit;
} else {
echo "<p>Bad cookie. Clear please clear them out and try to login again.</p>";
exit;
}
}
if (isset($_GET['p']) && $_GET['p'] == "login") {
if ($_POST['name'] != $username) {
echo "<p>Sorry, that username does not match. Use your browser back button to go back and try again.</p>";
exit;
} else if ($_POST['pass'] != $password) {
echo "<p>Sorry, that password does not match. Use your browser back button to go back and try again.</p>";
exit;
} else if ($_POST['name'] == $username && $_POST['pass'] == $password) {
setcookie('MyLoginPage', md5($_POST['pass'].$randomword));
header("Location: $_SERVER[PHP_SELF]");
} else {
echo "<p>Sorry, you could not be logged in at this time. Refresh the page and try again.</p>";
}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?p=login" method="post">
<fieldset>
<label>
<input type="text" name="name" id="name" /> Name
</label>
<br />
<label>
<input type="password" name="pass" id="pass" /> Password
</label>
<br />
<input type="submit" id="submit" value="Login" />
</fieldset>
</form>
它的作品真的很好,但是,當有日誌信息的錯誤,它切換到一個空白頁和回聲出一個消息,說在日誌中的信息是錯誤的。我想知道是否有辦法讓它在輸入頁面上回顯到頁面上的div。我試圖把相關的回聲消息放入div中,但它不起作用。我必須承認,我甚至不知道爲什麼它會進入空白頁面。
此外,這是做到這一點的最好方法還是有辦法讓它更安全?
感謝您提供任何援助。
本尼。
嘿,謝謝JScoobyCed,這就像我想要的那樣工作。非常感謝。你能回答我的問題:這是多麼安全,是否可以更安全?這是做這件事的最好方法嗎? – Benjamin 2013-02-28 02:11:09
恩......沒有「最好的辦法」來做到這一點。你提供的鏈接是從2006年開始的,所以我想你可以找一些更近期的帖子。請注意,使用md5進行登錄被認爲是不安全的,因爲可能會被利用,但如果你沒有保護財務信息,那麼你可能是很好的。 – JScoobyCed 2013-02-28 02:29:36