当前位置:Linux教程 - Php - php中比较简单的数据验证

php中比较简单的数据验证

php中比较简单的数据验证

php中比较简单的数据验证  
想象这样一个情形:我们已经创建了数据库并已正常运转了,我们所需要的就是获取用户的信息并插入到数据库中。

进一步,我们想象数据库里有一个字段要求数字输入,例如价格等数据。

最后再想象一些聪明的用户将文本插入到了该字段,是否让你哭笑不得?

MySQL可不希望看到你的SQL语句里包含一堆无聊的文本,它一定会抱怨不已。

怎么办?

验证它!

数据验证简单说就是对数据进行检查,看是否符合一定的模式,通常用于表单数据。你可以用它来确保一些元素非空,某值必须是数字,以及确保Email地址中包含@字符。

数据验证既可在服务器方执行,也可在客户方执行。

PHP用于服务器方的数据验证,而JavaScript及其他一些脚本语言可执行客户方的数据验证。

本文是关于PHP的,所以我们主要讨论服务器方。如果你需要一些关于客户方验证的代码,请检索Webmonkey的代码库。

我们先暂时抛开数据库,集中精力于PHP的数据验证。

由简到繁,PHP有好几个函数能执行这类事情,一个最简单的函数就是 strlen() ,它告诉我们字符串变量的长度。一个复杂的函数就是 ereg() ,它用正则表达式来处理数据。

关于正则表达式,一本书也写不完。本文不想深入讲它,但在下节里我会给出一些正则表达式的例子。

我们从一个简单的例子开始。首先我们检查某变量是否存在。

<html>
<body>

<?php

if ($submit) {


if (!
$first ││ !$last) {


$error = "Sorry!You didn't fill in all the fields!";


}


else {
// process form echo "Thank You!";


echo "Thank You!";


}

}

if (!
$submit ││ $error) {

echo
$error;

?>

<P>

<form method="post" action="<?php echo $PHP_SELF ?>">

FIELD 1: <input type="text" name="first" value="<?php echo $first ?>"><br>

FIELD 2: <input type="text" name="last" value="<?php echo $last ?>"><br>

<input type="Submit" name="submit" value="Enter Information">

</form>

<?php } // end if ?>

</body>
</html>

本脚本的关键就是嵌套的条件语句。第一个检查看提交按钮是否被按下。

如为真,那么继续检查变量$first和$last是否存在。

“││”符号等同于“or”而“!”符号等同于“not”。

我们也可用IF语句重写该句。

接下来,我们扩展一下,检查某字符串是否为指定长度。

它适用于检查用户密码,如果你不希望一些懒惰的用户只用一两个字母作密码的话。使用的函数是我们大家已知道的 strlen() 。该函数简单的返回一个数字,其值等于要检查的变量的字符数。

下面的代码只对上例作了一些小小的修改。

<html>
<body>

<?php

if ($submit) {

if (
strlen($first) < 6 ││ strlen($last) < 6) {

$error = "Sorry!You didn't fill in all the fields!";


}


else {
// process form echo "Thank You!";


echo "Thank You!";


}

}

if (!
$submit ││ $error) {

echo
$error;

?>

<P>

<form method="post" action="<?php echo $PHP_SELF ?>">

FIELD 1: <input type="text" name="first" value="<?php echo $first ?>"><br>

FIELD 2: <input type="text" name="last" value="<?php echo $last ?>"><br>

<input type="Submit" name="submit" value="Enter Information">

</form>

<?php } // end if ?>

</body>
</html>

运行该脚本,尝试输入6个或更少的字母,看看发生什么。

它很简单,但确实有效。