欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > PHP表单验证.人话版

PHP表单验证.人话版

2025/4/20 13:48:20 来源:https://blog.csdn.net/gougouxianka/article/details/144731537  浏览:    关键词:PHP表单验证.人话版

表单验证就是验证用户提交的表单是不是有问题。

基于菜鸟教程的示例,但是那边讲的不是很好,理解起来很困难,我尝试重新阐述一遍,以帮助可能存在的人。

先放出整个代码部分,如果你能直接看懂请离开这里,因为这将不适合您,适合我一样的萌新php开发者。如果看完后有些许困惑,您将会在后面看见我的解释。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>
div {color: #FF0000;}
</style></head><?php?><body><?php$MyName = $MyNamezhu = "";if($_SERVER["REQUEST_METHOD"] == "POST"){if(empty($_POST['MyName'])){$MyNamezhu='姓名不能为空';}else{$MyName =$_POST['MyName'];// 检测名字是否只包含字母跟空格if (!preg_match("/^[a-zA-Z ]*$/", $MyName)) {$MyNamezhu= "姓名只能包含字母和空格";}}}?><h4>*内容为必须写</h4><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">姓名*:<input type="text" name='MyName' value="<?php echo $MyName;?>"><div class='xx'> <?php echo $MyNamezhu;?></div>狗的名字:<input type="text" name='myDog' value="<?php echo $myDog;?>"><input type="submit"></form><?phpecho "<h2>你写的内容是</h2>";echo $_POST['MyName']."</br>";echo $_POST['myDog']."</br>";?></body>
</html>

我将整段代码拆解为数段,以帮助理解。

第一段

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>div {color: #FF0000;}</style></head>

这部分就是单纯的html代码,中间的style是css基础,如果这一部分看不明白应该去学习html和css

第二段

<?php$MyName = $MyNamezhu = "";if($_SERVER["REQUEST_METHOD"] == "POST"){if(empty($_POST['MyName'])){$MyNamezhu='姓名不能为空';}else{$MyName =$_POST['MyName'];// 检测名字是否只包含字母跟空格if (!preg_match("/^[a-zA-Z ]*$/", $MyName)) {$MyNamezhu= "姓名只能包含字母和空格";}}}?>

$MyName = $MyNamezhu = "";的意思是重置变量的值,让这两个变量都等于 “ ”如果不这样写,你提交后的表单将会乱糟糟,因为还保存上次填写的值。

$_SERVER["REQUEST_METHOD"]的意思是获取上传的方式,也就是说,发过来的文件是什么,常见的值为GET,POST等。

if($_SERVER["REQUEST_METHOD"] == "POST"){}的意思是,如果你给我的值是POST方式的,那我就执行{}的内容,否则什么也不做。

这样可以防止用户通过恶意的方式发送值给服务器。

if(empty($_POST['MyName'])){
                $MyNamezhu='姓名不能为空';

其中empty用于判断一个变量是不是空的,空的为真,也就是会把$MyNamezhu的值进行改变,可以防止用户输入空的值。

$_POST['MyName']是获取以POST方式发送的数据之中的MyName,也就是下面h5表单之中的我名字的值。

那么当值不为空的时候我们在进行对数据的筛选,preg_match()是正则表达式的内容,来判断后面的变量是不是符合要求的正则表达式。

preg_match()之中符合会为真,所以要取反,用!号来取反。

当变量是假的时候,也就是说虽然不为空,但是输入的并非只包含字母和空格,那将会把$MyNamezhu改变,也就是会出现提示。

第三段

<h4>*内容为必须写</h4><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">姓名*:<input type="text" name='MyName' value="<?php echo $MyName;?>"><div class='xx'> <?php echo $MyNamezhu;?></div>狗的名字:<input type="text" name='myDog' value="<?php echo $myDog;?>"><input type="submit"></form>

一个很轻松的html表单,method="post"说明将会以post形式发送

action="<?php echo $_SERVER['PHP_SELF'];?>的意思是发送到哪里。也就是当前页面。

$_SERVER['PHP_SELF']将会输出当前的文件路径,也就是地址为本身。

value="<?php echo $MyName;?>说明用户写入表单的值将会存给名称为$MyName的php变量。

这一部分<div class='xx'> <?php echo $MyNamezhu;?></div>

当用户输入错误的时候,也就是前面的第二段时候,里面的$MyNamezhu值会改变,也就实现了错误提醒了。

第四段

<?phpecho "<h2>你写的内容是</h2>";echo $_POST['MyName']."</br>";echo $_POST['myDog']."</br>";?>

用于向着用户展示刚才他输出了什么。

恭喜你看完了我写的教程,若有疑问请在评论区留言,我一般半夜上csdn,可能回复晚一些。

最后祝您生活愉快。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词