ホームページ > バックエンド開発 > PHPチュートリアル > PHP 基本チュートリアル - フォームの検証 (必須、データは送信後に保存されます)

PHP 基本チュートリアル - フォームの検証 (必須、データは送信後に保存されます)

WBOY
リリース: 2016-06-13 12:13:49
オリジナル
1255 人が閲覧しました

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

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

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

      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代码片段如*

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

简单示例:

<!DOCTYPE HTML> <html><head><style>.error {color: #FF0000;}</style></head><body> <?php$name = $email = $website = $area = $gender = "";$nameErr = $emailErr = ""; if ($_SERVER[&#39;REQUEST_METHOD&#39;] == &#39;POST&#39;){//attention $_SERVER[&#39;REQUEST_METHOD&#39;]	if (empty($_POST[&#39;name&#39;])){		$nameErr = "姓名必填";	}else{		$name = test_input($_POST[&#39;name&#39;]);	}	if (empty($_POST[&#39;email&#39;])){		$emailErr = "电邮必填";	}else{		$email = test_input($_POST[&#39;email&#39;]);	}	if (empty($_POST[&#39;website&#39;])){		$website = "";	}else{		$website = test_input($_POST[&#39;website&#39;]);	}	if (empty($_POST[&#39;area&#39;])){		$area = "";	}else{		$area = test_input($_POST[&#39;area&#39;]);	}	if (empty($_POST[&#39;gender&#39;])){		$gender = "";	}else{		$gender = test_input($_POST[&#39;gender&#39;]);	}}function test_input($str){	$str = trim($str);//去除空格等	$str = stripslashes($str);//去除用户输入的反斜线	$str = htmlspecialchars($str);//转意特殊字符为普通字符	return $str;}?><p class="error">*为必填</p><!--attention $_SERVER[&#39;PHP_SELF&#39;]--><form method="POST" action="<?php echo htmlspecialchars($_SERVER[&#39;PHP_SELF&#39;]);?>">姓名:<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><?phpecho "您的输入是:<br/>";echo "姓名:",$name;echo "<br/>电邮:", $email;echo "<br/>网址:", $website;echo "<br/>评论:", $area;echo "<br/>性别:", $gender;?>
ログイン後にコピー

显示裁图:


四、表单数据的保留

在上述代码中只需改动如下 标签中添加PHP片段:

之间

对单选,较麻烦,在中添加代码:

<form method="POST" action="<?php echo htmlspecialchars($_SERVER[&#39;PHP_SELF&#39;]);?>">姓名:<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>
ログイン後にコピー



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート