-3

我有一个关于 php 验证的问题,我有这个脚本

$(document).ready(function(){
// validate signup form on keyup and submit
var validator = $("#contactform").validate({
    rules: {
        email: {
            email: true,
            required: true,
            remote: { url: "test.php", type: "post" }
        }
    },
    messages: {
        email: {
            email: "Enter a valid email adress",
            required: "This input is required",
            remote: "Email adress is in use"
        }
    },
    // set this class to error-labels to indicate valid fields
    success: function(label) {
        label.addClass("checked");
    }
});
});

并且来自 test.php 的验证脚本是

define('__ROOT__', dirname(dirname(dirname(__FILE__)))); 
require_once (__ROOT__.'/config.php');

$email = mysql_real_escape_string($_POST['email']);
$SQL = $mysqli->query("SELECT * FROM users WHERE email='$email'");
    If($SQL->num_rows == 0) {
        echo 'true';
    } else {
        echo 'false';
    }

如何使 php 文件的验证更复杂,例如:我想添加一个规则来检查电子邮件是否有效(以防万一有人没有激活 javascript)但是如果我尝试这样的验证如果电子邮件地址在数据库中,脚本不会返回错误消息

If(filter_var($email, FILTER_VALIDATE_EMAIL) == false) {
$SQL = $mysqli->query("SELECT * FROM users WHERE email='$email'");
    If($SQL->num_rows == 0) {
        echo 'true';
    } else {
        echo 'false';
    }
}
4

1 回答 1

1

remote使用jquery.validate. _ 检查您是否执行了以下操作:

1)确保您只使用 jQuery 1.6.1及更高版本。

2)使用“同步”选项进行远程执行(默认为异步)并将async选项设置为false.

用法:

$("#contactform").validate({
  rules: {
    email: {
      required: true,
      email: true,
      remote: { url:"check.php", async:false }
    }
  }
});
于 2012-09-13T17:25:42.020 回答