3

在 SO Chat 上讨论了几个小时后,有人帮我开始了,我自己做了一些补充,产生了以下 JSFiddle:

http://jsfiddle.net/aKENW/2/

我在另一台在线服务器上创建了一个测试 mysql 数据库。我还放置了一个验证文件,其中包含以下 php 代码:

<?php
$db = new PDO('mysql:host=localhost;dbname=...', '...', '...');
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$emailInput = $_POST['signUpemail'];
$result = $db->prepare('SELECT * FROM people WHERE email=?');
$result->execute(array($emailInput));
$count = count($result->fetchAll());
if ($count > 0){
    echo 0;
}
else {
    echo 1;
}
?>

上面的文件被调用validation.php并放置在同一台服务器上。此文件由urlJSFiddle AJAX 代码中的参数访问。

action="google.com"在表单声明中添加了意图,如果输入的用户名有效并且输入的电子邮件在经过我的数据库检查后有效,则用户将被重定向到该 URL。

数据库中已经存在的测试电子邮件是test7@gmail.com.

我究竟做错了什么?

编辑:对不起,我没有弄清楚原始帖子中的问题是什么。问题是电子邮件根本没有验证。无论我在文本框中输入什么电子邮件地址,无论它是否在数据库中,它都不会通过。该页面未重定向到 google.com。我添加 google.com 的唯一原因是为了让表单是否真的有效。

4

1 回答 1

2

您的 JavaScript 代码不会向您的 PHP 脚本发送任何表单参数:

document.getElementById('signUpemail').onkeyup = function (e) {
    $.ajax({
        type: 'POST',
        url: 'http://demcode.5gbfree.com/validate.php',
        success: function (data) {
            createError('Username is already registered');
        }
    });
}

一些数据放入你的论点中$.ajax(),看看会发生什么。

于 2013-06-10T20:30:45.890 回答