【问题标题】:jQuery validation plugin and server-side php validationjQuery 验证插件和服务器端 php 验证
【发布时间】:2012-09-06 19:55:34
【问题描述】:

我有一个关于 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';
    }
}

【问题讨论】:

  • 验证怎么破? PHP 错误,MySQL 错误,不期望正确的输出.. 等等?
  • 如果我在表单中输入数据库中存在的电子邮件地址,它不会返回错误。
  • 数据库中存在还是不存在?
  • " 我想添加一个规则来检查电子邮件是否有效(以防万一有人没有激活 javascript)" 那么,您想从服务器端验证电子邮件格式还是什么? FILTER_VALIDATE_EMAIL 没有这样做吗?
  • @dbf 存在于数据库中

标签: php jquery validation


【解决方案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 }
    }
  }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多