感謝我的最後一個問題,即時將我的網站更新爲PDO,我認爲我的頭版開始工作,並且更深入地工作,並且我的第一個障礙擊中了我的登錄腳本。PDO登錄腳本失敗
登錄-exec.php EDITED
session_start();
include_once ('connect.php');
$Email = isset($_POST['Email']) ? $_POST['Email'] : "Email Never Sent";
$Password = isset($_POST['Password']) ? $_POST['Password'] : "Password Never Sent";
$stmt = $db->prepare("SELECT * FROM members WHERE Email = :Email AND Password = :Password");
$stmt->bindParam(":Email" , $Email );
$stmt->bindParam(":Password", $Password);
$stmt->execute();
$member = $stmt->fetch(PDO::FETCH_ASSOC);
if ($member)
{
$_SESSION['SESS_MEMBER_ID'] = $member['Member_ID'];
$_SESSION['SESS_POST_AS'] = $member['Post_As'];
$_SESSION['SESS_AUTH'] = $member['auth'];
session_write_close();
header('location: index.php');
exit();
} else {
header("location: ?p=login-failed");
exit();
}
connect.php
$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
編輯:現在我得到發送到登錄失敗的頁面,這樣做我現在的問題在於這是什麼頁面從表單中收到?
我知道我的$的密碼是純文本,我是之前使用MD5,一旦我得到這個工作生病實現一些更好的保護
您應該調高PHP錯誤報告的級別。如果你在login-exec.php中發佈的內容是正確的,那麼你的右括號太多了,這應該會產生一個錯誤。 – crush
'$ count> 1'似乎不好,因爲只會有一個結果。 –
給我們一個錯誤消息,使用try ... catch程序創建PDO對象時:http://www.php.net/manual/en/pdo.construct.php – user4035