0
我對php編程非常陌生。我已經寫了一個註冊html文件,用戶輸入他的電子郵件和密碼。如果用戶已經註冊,我正在重定向到登錄屏幕,如果用戶是新用戶,我堅持數據庫。現在,如果用戶輸入了錯誤的密碼,他將再次被重定向到登錄屏幕,但這次我想在屏幕上顯示一條消息,輸入的密碼不正確。當用戶直接導航到登錄屏幕時,登錄屏幕不應顯示消息。在php中顯示服務器錯誤消息
的代碼片段如下:
<?php
define('DB_HOST', 'hostname');
define('DB_NAME', 'db_name');
define('DB_USER','username');
define('DB_PASSWORD','password');
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());
function NewUser() {
$email = $_POST['email'];
$password = $_POST['password'];
$query = "INSERT INTO WebsiteUsers (email,pass) VALUES ('$email','$password')";
$data = mysql_query ($query)or die(mysql_error());
if($data) {
header('Location: reg-success.html');
}
}
function SignUp() {
if(!empty($_POST['email'])){
$emailQuery = mysql_query("SELECT * FROM WebsiteUsers WHERE email = '$_POST[email]'");
if($row = mysql_fetch_array($emailQuery)) {
$query = mysql_query("SELECT * FROM WebsiteUsers WHERE email = '$_POST[email]' AND pass = '$_POST[password]'");
if($row = mysql_fetch_array($query)) {
echo 'validated user. screen that is accessible to a registered user';
}else{
echo 'Redirect to the sign in screen with error message';
}
}else{
NewUser();
}
}
}
if(isset($_POST['submit']))
{
SignUp();
}
?>
請讓我知道如何使用PHP
無關的注意:您的代碼*對SQL注入攻擊廣泛開放。你可能想開始閱讀這裏:http://php.net/manual/en/security.database.sql-injection.php – David 2014-09-24 16:46:54
有**沒有更多的支持** mysql_ *'功能,他們是[* *正式棄用**](https://wiki.php.net/rfc/mysql_deprecation),**不再維護**,並將[**刪除**](http://php.net/manual/ en/function.mysql-connect.php#warning)。您應該使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)更新您的代碼,以確保您的項目未來的功能。 – Kermit 2014-09-24 16:47:23
一個簡單的解決方案是在查詢字符串中傳遞錯誤消息,如'?error = 1&message = Invalid%20Login' 然後檢查'$ _GET' params – 2014-09-24 16:47:48