【发布时间】:2013-07-12 06:22:07
【问题描述】:
我是 PDO 的新手,正在尝试注册和登录。这是返回 bool(false)
当我尝试调试它时。不知道为什么会这样。
<?php
include_once('db.php');
$username = $_POST['username'];
$email = $_POST['email'];
$password = sha1($_POST['password']);
$confirm_password = sha1($_POST['confirm_password']);
$ip = $_SERVER['REMOTE_ADDR'];
$fetchUsers = $db->query("SELECT * FROM `users` WHERE `username` = '$username'");
if(!empty($username) &&
!empty($email) &&
!empty($password) &&
!empty($confirm_password) &&
filter_var($email, FILTER_VALIDATE_EMAIL) &&
$password == $confirm_password &&
$fetchUsers->fetchAll() != $username) {
$insertSQL = "INSERT INTO `users`
(`username`, `email`, `password`, `ip`) VALUES
(:username => '$username', :email => '$email', :password => '$password', :ip => '$ip')";
$insertUser = $db->query($insertSQL);
var_dump($insertUser);
echo '<br /><br />You have successfully registered.';
}
else {
echo '<br /><br />There was an error with your registration.';
}
?>
【问题讨论】:
-
忠告,让 PDO 对错误抛出异常;
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);. -
另外,使用
bcrypt之类的密码哈希而不是sha1()。