我需要獲取管理員名稱和密碼。然後需要使用php比較用戶輸入和MySQL。如果數據庫通過驗證,我應該登錄到下一頁。如果驗證正確,如何編寫php函數來訪問MySQL。我應該登錄他。需要檢查MySQL數據庫並在驗證登錄後
設計我的HTML代碼:
<?php
?>
<!DOCTYPE HTML>
<head>
<title>Login Page</title>
<link rel="stylesheet" type="text/css" href="css/home.css">
<script src="js/home.js"> </script>
</head>
<body>
<form action="validate_login.php" method="post">
<div>
<div class="layout">
<div class="heading"></div>
<div class="img1"></div>
<div class="login">
<div class="logo"></div>
<div > <label class="AdminName">Admin Name</label> <input type="text" name="AdminName" value="AdminName" id="AdminName"/></div>
<div > <label class="Password">Password</label> <input type="password" name="Password" value="Password" id="Password" /></div>
<input type="button" button onclick='window.location="menu.php"' name="Login" id="login" value="LOGIN"/>
<input type="button" name="Login" id="cancel" value="cancel"/></form>
</div>
<div class="img2"></div>
</div>
</div>
</body>
我的PHP代碼來訪問數據庫:
<?php
// Grab User submitted information
$AdminName = $_POST["AdminName"];
$Password = $_POST["Password"];
// Connect to the database
$con = mysql_connect("localhost","admin","[email protected]");
// Make sure we connected succesfully
if(! $con)
{
die('Connection Failed'.mysql_error());
}
// Select the database to use
mysql_select_db("admin_data",$con);
$result = mysql_query("SELECT AdminName, Password FROM admin_info WHERE AdminName = $AdminName");
$row = mysql_fetch_array($result);
if($row["AdminName"]==$AdminName && $row["Password"]==$Password)
echo"You are a validated user.";
else
echo"Sorry, your credentials are not valid, Please try again.";
?>
如果您使用該代碼,那麼任何人都一定能夠登錄。或者,如果他們喜歡,可以刪除您的數據庫。 'mysql_ *'函數被棄用,因爲它們不安全。你應該閱讀關於SQL注入 - (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)。除此之外,我無法分辨你在問什麼。這段代碼不能按預期工作嗎? – Cfreak
@ user3317807,看看你有很多錯誤,你必須糾正。簡單的一個是添加引號爲'$ AdminName'等選擇查詢。爲了使它更簡單,將結果(在while後面)設置在另一個變量中,然後進行比較。檢查GOOGLE.YOU有很多腳本爲此 – codelover
旁註:此行WHERE AdminName = $ AdminName'需要WHERE AdminName =' $ AdminName'' ---'$ AdminName'需要用引號括起來,否則將被視爲一個整數;這很可能是它不工作的原因。 –