我正在嘗試構建登錄表單,因此我在數據庫中指定的管理員可以將圖像插入到我的數據庫中。管理員登錄表格
我有幾個誤區:
1)我使用<?php echo $_SERVER['PHP_SELF']; ?>
稱自己(調用login.php中),所以它會加載它下面的PHP代碼(這是在同一個文件)。無論何時按下提交,它都不會轉到PHP代碼中的指定標題,而是返回到homepage.php。
的login.php:管理員登錄的HTML表單
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table>
<tr>
<td>Username: </td><td><input type="text" name="username"></td>
</tr>
<tr>
<td>Password: </td> <td><input type="text" name="pw"></td>
</tr>
</table>
<br />
<input type="submit" value="Log in">
</center>
2)第二個問題是...查看PHP代碼,我試圖找到一種功能,可以讓我搶關聯數組的特定鍵。例如,我運行數據庫查詢並將其作爲關聯數組存儲在$ result中,然後返回該數組。然後我想從用戶表中獲取一個密鑰(「用戶名」和「密碼」),並將它們與上述html表單中的輸入進行比較。
我試過使用array_keys,但那需要一個數組,而不是一個對象。所以我鑄造了它,但它仍然無法工作。
我使用print_r(array_keys($userResult, "username"));
來查看它是否會打印我想要的密鑰。
的login.php PHP代碼
<?php
$username = isset($_POST['username']) ? $_POST['username'] : "";
$password = isset($_POST['pw']) ? $_POST['pw'] : "";
$userResult = verify($username, $password);
$array = (array)$userResult; //cast to array
print_r(array_keys($userResult, "username"));
if(array_keys($userResult, "username") == "dan" && array_keys($userResult, "password") == "12345") {
header("Location: ?action=admin");
}
else {
echo "<center>Incorrect credentials</center>";
}
function verify($user, $pw) {
include './scripts/dbconnect.php';
$result = $mysqli->query("SELECT username, password FROM users WHERE username='" . $user . "' AND password='" . $pw . "'");
return $result;
}
include 'include/footer.php';
?>
任何想法,將不勝感激!
嘗試使用object $ object =(object)$ userResult;你可以簡單地調用$ object-> username;和$ object-> password; – Arun
順便說一句,我建議不要將管理員登錄URL設置爲MySite/Admin或者太容易找到的東西。 – frenchie
@frenchie好點...並且實際上,我想知道是否有任何其他方式阻止某人輸入數據,如果他們碰巧找到了正確的URL。 – Growler