Web_PHP_PHP客户端表单数据验证;

前言: 说到,PHP客户端表单数据验证,不外乎就三方面,字段非空问题,字符处理问题,数据格式规则;下面,就从这三方面入手;

=》代码

<span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
	<title>PHP客户端验证_PHP工作室</title>
	<style>
		.error {color: #FF0000;}
	</style>
</head>

<body>
	<?php
		/**
		* 客户端验证
		* 1、是否非空
		*	 确定哪些字段是必填,哪些可以为空;
		* 2、字符处理
		*	 处理数据中的空格、反斜杠、html字符等;
		* 3、格式规则
		*	 验证数据是否符合格式要求;
		*/
		// 错误变量:定义变量并设置为空值;
		$nameErr = $emailErr = $genderErr = $websiteErr = "";
		// 参数变量:存储提交的数据;
		$name = $email = $gender = $comment = $website = "";
		
		// post提交执行
		if ($_SERVER["REQUEST_METHOD"] == "POST") {
			
			// 姓名
		   if (empty($_POST["name"])) {
			 $nameErr = "姓名是必填的";
		   } else {
			 $name = test_input($_POST["name"]);
			 // 检查姓名是否包含字母和空白字符
			 if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
			   $nameErr = "只允许字母和空格"; 
			 }
		   }
		   
		   // 电邮
		   if (empty($_POST["email"])) {
			 $emailErr = "电邮是必填的";
		   } else {
			 $email = test_input($_POST["email"]);
			 // 检查电子邮件地址语法是否有效
			 if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
			   $emailErr = "无效的 email 格式"; 
			 }
		   }
			
			// 网址
		   if (empty($_POST["website"])) {
			 $website = "";
		   } else {
			 $website = test_input($_POST["website"]);
			 // 检查 URL 地址语法是否有效(正则表达式也允许 URL 中的斜杠)
			 if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
			   $websiteErr = "无效的 URL"; 
			 }
		   }
		
			// 评论
		   if (empty($_POST["comment"])) {
			 $comment = "";
		   } else {
			 $comment = test_input($_POST["comment"]);
		   }
		
			// 性别
		   if (empty($_POST["gender"])) {
			 $genderErr = "性别是必选的";
		   } else {
			 $gender = test_input($_POST["gender"]);
		   }
		}
		
		// 字符处理
		function test_input($data) {
		   $data = trim($data);
		   $data = stripslashes($data);
		   $data = htmlspecialchars($data);
		   return $data;
		}
	?>

	<h2>PHP 验证实例</h2>
	<p><span class="error">* 必需的字段</span></p>
	
	<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
	   姓名:<input type="text" name="name" value="<?php echo $name;?>">
	   <span class="error">* <?php echo $nameErr;?></span>
	   <br><br>
	   电邮:<input type="text" name="email" value="<?php echo $email;?>">
	   <span class="error">* <?php echo $emailErr;?></span>
	   <br><br>
	   网址:<input type="text" name="website" value="<?php echo $website;?>">
	   <span class="error"><?php echo $websiteErr;?></span>
	   <br><br>
	   评论:<textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>
	   <br><br>
	   性别:
	   <input type="radio" name="gender" value="female" <?php if (isset($gender) && $gender=="female") echo "checked";?>>女性
	   <input type="radio" name="gender" value="male" <?php if (isset($gender) && $gender=="male") echo "checked";?>>男性
	   <span class="error">* <?php echo $genderErr;?></span>
	   <br><br>
	   <input type="submit" name="submit" value="提交"> 
	</form>

	<?php
		echo "<h2>您的输入:</h2>";
		echo $name;
		echo "<br>";
		echo $email;
		echo "<br>";
		echo $website;
		echo "<br>";
		echo $comment;
		echo "<br>";
		echo $gender;
	?>

</body>
</html>
</span>


=》效果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值