我想知道你是否可以帮助我。我使用PHP将数据从html表单传递到MySQL数据库。所有字段都已经过验证,但我希望它在任何数据进入数据库之前验证所有数据。
例如,如果在“名称”字段中输入的字符不足,则会告诉用户,但是如果电子邮件地址被正确验证,则会将数据插入到数据库中。我该怎么做呢?
// check the length of 'name' field if between 2 and 50 characters
if ((strlen($name) < 2 || strlen($name) > 50)) {
echo "The name is invalid, must be between 2 and 50 chearacters.";
exit;
}
echo "</br>";
// check field name contains numbers
if (preg_match('#[0-9]#',$name)){
echo 'The name is invalid, its contains numbers. Please go back and try again.';
}
echo "</br>";
// Check if email is valid. If not tell the user it is invalid
$regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/';
if (!preg_match($regex, $emailaddress)) {
echo "Invalid email address. Please go back and try again.";
}
// insert the data from the registration form into the DB
mysql_query("INSERT into customers
(cs_name, cs_emailaddress)
VALUES
(
'".$name."', '".$emailaddress."',
)
")
or die(mysql_error());
答案 0 :(得分:1)
在调用mysql_query()之前使脚本死掉,或者最初创建一个$ isValid变量,当出现错误时将其设置为false。你在mysql_query之前加了一个条件:
if ($isValid === true)
{
mysql_query(...
}
答案 1 :(得分:-1)
您可以尝试使用jquery字段验证。在jquery中有一个函数valid()
,您可以使用它来确保您的字段是否全部有效。
如果valid()
返回true,则执行mysql操作。你可以使用ajax调用它。