-1
即時通訊新的PHP和我想做一個登錄表單,讓人們可以用他們的電子郵件和密碼登錄。登錄PHP的MySQL
密碼和電子郵件地址在我的數據庫中。密碼是md5加密的。
當前,當我轉到表單時,它正在工作。然而,當我點擊連接時,它會轉到我的includes/login.php文件,並且它會在白頁中獲得。
<?php
if (isset($_POST['email']) && isset($_POST['password'])) {
$user = $_POST['email'];
$pass = $_POST['password'];
$passmd5 = md5($pass);
include('connexiondb.php');
$check = mysqli_query($mysqli, 'SELECT * FROM User WHERE EmailUser == $user');
while($checkRow = mysqli_fetch_array($check)) {
$passmd5db = $checkRow['PassUser'];
$accessUser = $checkRow['AccessUser'];
$idUser = $checkRow['IDUser'];
}
if($passmd5 == $passmd5db) {
// dans ce cas, tout est ok, on peut démarrer notre session
// on la démarre :)
session_start();
// on enregistre les paramètres de notre visiteur comme variables de session ($login et $pwd) (notez bien que l'on utilise pas le $ pour enregistrer ces variables)
$_SESSION['id'] = $idUser;
$_SESSION['access'] = $accessUser;
// on redirige notre visiteur vers une page de notre section membre
header ('location: index.php');
}
}
?>
我有什麼不好嗎?
你的代碼對SQL注入可疑 – Robus
第一眼 - mysql使用'='而不是'==',字符串必須用引號封裝''''''''''',php不會分析變量在單引號中只有雙引號 - >''SELECT * FROM用戶WHERE EmailUser ='$ user''' – Sean
'error_reporting(E_ALL); ini_set('display_errors',1);'在文件頂部的<?php'之後直接添加這兩行,然後重試,並向我們顯示錯誤 – Alex