$error
顯示所有的時間,而不是當腳本中發現錯誤時。我將else
設置爲showForm
,然後打算在<?php echo $error; ?>
框中顯示$error
上的代碼。PHP簡單登錄腳本,不顯示錯誤
感謝您提前給予的幫助,希望能儘快找到問題的答案。
<?php
$Password = 'password'; // Password here
if (isset($_POST['submit_pwd'])){
$pass = isset($_POST['pass']) ? $_POST['pass'] : '';
if ($pass != $Password) {
showForm("Wrong password");
exit();
}
} else {
showForm();
exit();
}
function showForm($error="Error, please try again."){
?>
<!DOCTYPE html>
<head>
HEAD CONTENT HERE
</head>
<body>
<section class="container">
<div class="login">
<h1>Login Area</h1>
<br />
<div class="error">
<h2><?php echo $error; ?></h2>
</div>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="pwd">
<p><input type="password" name="pass" value="" placeholder="Password"></p>
<p class="submit"><input type="submit" name="submit_pwd" value="Login"></p>
</form>
</div>
</section>
</body>
</html>
<?php
}
?>
真的很奇怪的編碼實踐有一個什麼都不做,但基本上產生一個HTML文件的功能。爲什麼不在這裏使用include?如果有像'login_form.php'這樣的文件,然後只是'include'login_form.php'而不是進行函數調用? –
Mike,上面的代碼是登錄表單,我在我保護的頁面上使用require_once('protect.php')。 – mjwrocks