感谢我的最后一个问题,即时将我的网站更新为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