私がやろうとしているのは、メールアドレスがデータベースにあるかどうかを検証することです。メールCheckEmailAddress
がデータベースにあり、機能しているように見えるかどうかを確認します(必要に応じて書き直してください)。問題は、JQuery関数からJSON電子メールデータを投稿すると、電子メールがデータベースに入力されている場合にfalseが存在するはずのときに常にtrueを返すことです。
JQUERY:
$('#checkemail').click(function() {
$.post('http://' + location.host + '/buyme/include/getemailaddress.php',
{'email':'test012@yahoo.co.nz'}, function(res){
var obj = JSON.parse(res);
alert(obj)
});
});
PHP
<?PHP
require_once("membership.php");
$membership = new Membership();
$val = $_POST["email"];;
$result = $membership->CheckEmailAddress(trim($val));
echo json_encode($result); //output test@test.com
?>
function CheckEmailAddress($email_address) {
$connection = mysql_connect('localhost:3306','root','')or die('Error connecting');
mysql_select_db('buyme') or die('Connection not working properly');
$query = "SELECT email_address from users where email_address='$email_address'";
$result = mysql_query($query, $connection);
$row = mysql_fetch_assoc($result);
$emailInUse = 'false';
if(!$row || $row["email_address"] == '') {
$emailInUse = 'true';
}else{
$emailInUse = 'false';
}
return $emailInUse;
}
修正が必要な場合は、コードを更新して、感謝の気持ちをテストできるようにしてください
アップデート:
try {
$pdo = new PDO('mysql:dbname=buyme;host=localhost:3306', 'root', '',
$options = array (
PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION
));
$email_address = 'kirkdm021@yahoo.co.nz';
$stmt = $pdo->prepare("SELECT email_address
FROM users
WHERE email_address=:email_address");
$stmt->execute(array('email_address'=>$email_address));
$rows = $stmt->fetchObject();
echo empty($rows->email_address) ? "" : $rows->email_address; // $row["email_address"];
}catch (PDOException $e) {
die('error: ' . $e->getMessage());
}