php基础教程——表单验证(必填、提交后数据保留)

一、表单验证中用到的几个元素记录

1.htmlspecialchars(),用于将用户输入的特殊字符转义为普通字符,比如 < 和 > 之类的 HTML 字符会被替换为 &lt; 和 &gt;

2.$_SERVER["PHP_SELF"] 是一种超全局变量,返回当前页面脚本名字

3.trim()用于删除多余的空格等

4.stripslashes()用于删除用户多输入的反斜线

二、一个简单的表单验证函数

function test_input($str){
	$str = trim($str);//去除空格等
	$str = stripslashes($str);//去除用户输入的反斜线
	$str = htmlspecialchars($str);//转意特殊字符为普通字符
	return $str;
}

三、表单中必填项的提示代码

1.php代码中,验证输入框是否为空,是则增加错误信息,用于在HTML中显示,非空则验证和处理输入

2.HTML代码中插入输出错误信息的php代码片段如<span class="error">*<?php echo $emailErr?></span><br/>

$emailErr为保存错误信息变量,起始为空。

简单示例:

<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
$name = $email = $website = $area = $gender = "";
$nameErr = $emailErr = "";
if ($_SERVER['REQUEST_METHOD'] == 'POST'){//attention $_SERVER['REQUEST_METHOD']
	if (empty($_POST['name'])){
		$nameErr = "姓名必填";
	}else{
		$name = test_input($_POST['name']);
	}
	if (empty($_POST['email'])){
		$emailErr = "电邮必填";
	}else{
		$email = test_input($_POST['email']);
	}
	if (empty($_POST['website'])){
		$website = "";
	}else{
		$website = test_input($_POST['website']);
	}
	if (empty($_POST['area'])){
		$area = "";
	}else{
		$area = test_input($_POST['area']);
	}
	if (empty($_POST['gender'])){
		$gender = "";
	}else{
		$gender = test_input($_POST['gender']);
	}
}

function test_input($str){
	$str = trim($str);//去除空格等
	$str = stripslashes($str);//去除用户输入的反斜线
	$str = htmlspecialchars($str);//转意特殊字符为普通字符
	return $str;
}
?>
<p class="error">*为必填</p><!--attention $_SERVER['PHP_SELF']-->
<form method="POST" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
姓名:<input type="text" name="name">
<span class="error">*<?php echo $nameErr?></span><br/>
电邮:<input type="text" name="email">
<span class="error">*<?php echo $emailErr?></span><br/>
网址:<input type="text" name="website"><br/>
评论:<textarea name="area" rows="4" cols="40"></textarea><br/>
性别:
<input type="radio" name="gender" value="female">女性
<input type="radio" name="gender" value="male">男性<br/>
<input type="submit" value="提交" name="submit"><br/>
</form>
<?php
echo "您的输入是:<br/>";
echo "姓名:",$name;
echo "<br/>电邮:", $email;
echo "<br/>网址:", $website;
echo "<br/>评论:", $area;
echo "<br/>性别:", $gender;
?>

显示裁图:

四、表单数据的保留

在上述代码中只需改动如下 <input>标签中添加PHP片段:<input type=‘‘ name=‘‘ value="<?php echo $name?>">

对<textarea>元素,只需将php片段添加在<textarea></textarea>之间

对单选,较麻烦,在<input>中添加代码:<?php if (isset($gender)) && $gender == ‘female‘) echo ‘checked‘;?>

<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/>
电邮:<input type="text" name="email" value="<?php echo $email;?>">
<span class="error">*<?php echo $emailErr?></span><br/>
网址:<input type="text" name="website" value="<?php echo $website;?>"><br/>
评论:<textarea name="area" rows="4" cols="40"><?php echo $area;?></textarea><br/>
性别:
<input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?> value="female">女性
<input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?> value="male">男性<br/>
<input type="submit" value="提交" name="submit"><br/>
</form>
时间: 2024-10-07 07:59:48

php基础教程——表单验证(必填、提交后数据保留)的相关文章

表单验证必填项

在表单验证中,会有一些必填项,如手机号,密码,昵称,验证码等,如果某项为空,或格式不正确表单将无法提交.在此我只做了手机号和密码的验证,其他的与此类此 html代码: <form action="" onsubmit="return check_sub()"> <p class="tel"> <label for="tel">手机</label> <input type=&

PHP 表单验证 - 必填字段

-------------------------------------------------------------------------- 本节展示如何制作必填输入字段,并创建需要时所用的错误消息. -------------------------------------------------------------------------- PHP - 输入字段 从上一节中的验证规则中,我们看到 "Name", "E-mail" 以及 "G

Yii表单验证中,提交前验证,不通过不提交

$form = $this->beginWidget('CActiveForm',array(         'id' => 'add_host',         'enableAjaxValidation' => false,         'enableClientValidation' => true,         'clientOptions' => array(                 'validateOnSubmit' => true  

js表单建立必填字段

在填写表单时可能希望用户必须填写某些字段或者两段填写的字段相匹配,然后才能提交表单,这里就可以用js来实现 下面是建立一个基础表单的HTML代码 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset = "utf-8"> 5 <title>Password check</title> 6 <link rel="stylesheet" typ

js表单验证时重复提交的问题

1.错误示例 上图中的提交表单的按钮类型是submit的,这样提交表单的时候就算你onclick事件中返回的是false表单还是会提交的 2.正确示例: 我们将按钮的类型改为button这样就不会发生重复提交表单的现象了.

Laravel教程 七:表单验证 Validation

Laravel教程 七:表单验证 Validation 此文章为原创文章,未经同意,禁止转载. Laravel Form 终于要更新这个Laravel系列教程的第七篇了,期间去写了一点其他的东西. 就不 说废话了吧,直接进入Form Validation的部分吧.几乎在每一个web应用当中都会有表单,而有表单基本就离不开表单验证.在laravel中,其实可以说是有两种方式来进行表单验证:使用Request和使用Validation.下面将分开讲这两部分的内容,而且我会更着重第一种,也更推荐大家使

用JavaScript进行表单验证

用户填写表单后提交,服务器端脚本会先验证数据,保证数据的正确性(比如数据是符合要求的内容.格式正确等)后再将数据交到数据库存储供以后使用.也可以在客户机上用JavaScript进行表单验证,比较快,用户操作效率较高.虽然用JavaScript进行表单验证有很多优点,不过有些用户可能会关闭浏览器JavaScript功能或者不支持JavaScript,因此在服务器端脚本的表单验证必不可少. 研究了<JavaScript基础教程 第九版>[美·Dori Smith,Tom Negrino] 一书中对

(转)表单验证 - jQuery 实现

——选自<锋利的jQuery>(第2版)第5章的例题  5.1.5 表单验证 表单作为HTML最重要的一个组成部分,几乎在每个网页上都有体现,例如用户提交信息.用户反馈信息和用户查询信息等,因此它是网站管理者与浏览者之间沟通的桥梁.在表单中,表单验证的作用也是非常重要的,它能使表单更加灵活.美观和丰富.       以一个简单的用户注册为例.首先新建一个表单,HTML代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans

表单验证提交——submit与button

之前做东西接触过表单验证提交,但是都是为了完成工作,做完就做完了,没有注过表单验证提交有几种方法,各方法都有啥区别.今天瞎折腾了一下,对他们研究了一下,如下是我个人的理解: submit: 从字面上看是“提交”的意思,专门为提交而生.他既可以接受点击提交表单也能接受Enter(回车键)提交表单(也就是表单里的控件在获取焦点的时候回车直接提交表单),这样就比较人性化. <form name="myForm" action="http://www.baidu.com&quo