1
我正在爲我的網站編寫我的控制面板的登錄代碼。我製作了登錄腳本。但由於某些原因,會不會保存,這裏是我的代碼的部分我用:用於登錄的PHP會話 - 不識別
的index.php
session_start();
if(isset($_POST['username']) && isset($_POST['password'])) {
require('scripts/validateLogin.php');
}
if($_SESSION['login'] == 1) {
$loginOkay=1;
echo "Logged in";
} else {
$loginOkay=0;
echo "Not logged in";
}
validateLogin.php
require('mysql_connect.php');
$username = htmlspecialchars(strtolower($_POST['username']));
$password = md5(htmlspecialchars($_POST['password']));
$result = mysqli_query($con, "SELECT username,password FROM tb_mods WHERE username = '$username';");
while($row = mysqli_fetch_array($result)) {
if ($row['username'] == $username && $row['password'] == $password) {
$_SESSION['login'] == 1;
}
}
我我之前調用session_start();
加載我的loginValidation.php所以session_start();在這兩個頁面中都有效。
我不斷收到:未登錄作爲結果。
你很容易受到[SQL注入攻擊](http://bobbyt-ables.com)的攻擊,而你的'htmlspecialchars()'只是**無用的保護你免受這種事情的影響。同樣,爲什麼要在'while()'循環中比較用戶名呢?查詢只會返回具有該用戶名的記錄,所以你正在浪費cpu循環來重複數據庫已經爲你做的事情。 –
我已經很快寫了這段代碼,試圖讓功能開始工作,之後我計劃清理易受攻擊的代碼並清理代碼中無用的部分。現在我只是停留在上述問題上。 @MarcB – rockyl
查詢是否返回任何數據?我也會刪除while循環並計數結果 –