【发布时间】:2014-08-18 20:56:43
【问题描述】:
我想做的是当用户单击登录按钮并且输入为空时,它将回显please enter email and password,如果用户输入电子邮件和密码错误,它将回显incorrect email and password。
我的问题是当我单击登录按钮并且输入为空时,它会同时回显 please enter email and password 和 incorrect email and password。
我想回显,如果电子邮件和密码都为空,请输入电子邮件和密码,如果电子邮件或密码之一错误,它应该回显不正确的电子邮件和密码。
<?php
require 'encryption.php';
include_once('database.php');
$db = new Connection();
$db = $db->dbConnect();
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$email = $_POST['email'];
$pass = $_POST['password'];
$hash_cost_log2 = 8;
$hash_portable = FALSE;
$hasher = new PasswordHash($hash_cost_log2, $hash_portable);
$hash = '*';
$login = $db->prepare("SELECT user_password FROM tbl_user WHERE user_email= :email");
$login->bindParam(':email', $email, PDO::PARAM_STR);
$login->execute();
$hash = $login->fetchColumn();
if(empty($email) && empty($pass)){
echo "Please enter Email and Password";
}
if($hasher->CheckPassword($pass, $hash))
{
$st = $db->prepare("SELECT * from tbl_user WHERE user_email=? AND user_password=? AND user_active='1'");
$st->bindParam(1, $email, PDO::PARAM_STR);
$st->bindParam(2, $hash, PDO::PARAM_STR);
$st->execute();
if($st->rowCount() === 1){
echo "1";
exit;
}
}else{
echo "Incorrect Email or Password";
}
?>
【问题讨论】:
-
if(empty($email) || empty($pass))如果其中一个为空,则会触发错误。 -
要么,要么在客户端用JS检查它,然后再传递给PHP。
标签: php mysql sql database pdo