PHP是一种强大的服务器端脚本语言,它可以用来处理表单数据。表单是一种用户界面,它允许用户在Web页面上输入信息,然后将这些信息发送到服务器。PHP可以收集这些信息,并将其存储在数据库中,或者使用它来执行特定的任务。
要处理表单数据,首先要创建一个HTML表单。HTML表单包含一系列字段,如文本字段、多选字段、下拉列表等。当用户填写并提交表单时,这些字段中的数据将作为HTTP请求发送到服务器。
当服务器端的PHP脚本得到HTTP请求时,它会使用$_POST或$_GET关联数组来获取表单中的数据。$_POST数组包含POST方法发送的所有数据,而$_GET数组包含GET方法发送的所有数据。
// 获取 POST 方法传递的 name 参数 $name = $_POST['name']; // 获取 GET 方法传递的 age 参数 $age = $_GET['age'];
PHP还可以使用正则表达式来验证由表单传递的信息是否正确。例如,如果你想要验证一个email地址是否正确格式:
if ( preg_match( '/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i', $email ) ) { // email 格式正确 } else { // email 格式不正确 }
当你处理客户端传来的信息时,你应该对其进行过滤和验证以避免XSS(Cross Site Scripting) 攻击。XSS是一种常见的Web应用安全问题,它使得想要圆出Web应用中不明代码能够执行圆出者愿意执行的代码。
// 过去 HTML 标记 $data = strip_tags($data); // 转义 HTML 字符 $data = htmlspecialchars($data);
当你处理好所有信心之后就可以将其存
表单字段可以发送多个值,而不是单个值。
例如,以下表单字段能够向服务器发送多个值:
<label for="mySelection">What are your favorite widgets?</label> <select name="mySelection" id="mySelection" size="3" multiple="multiple"> <option value="PHP">PHP Language</option> <option value="Java">Java Language</option> <option value="CSS">CSS Language</option> </select>
多选列表框,允许用户选择一个或多个(或不选)选项。
<label for="tested">Have you tested?</label> <input type="checkbox" name="myTask" id="tested" value="testTask"/> <label for="designed">Have you designed?</label> <input type="checkbox" name="myTask" id="designed" value="designTask"/>
复选框可以具有相同的名称(myTask),但具有不同的值(testTask和designTask)。
如果用户选中两个复选框,testTask和designTask,在myTask字段名称下发送到服务器。
那么如何处理PHP脚本中的多值字段呢?诀窍是添加方括号([])在HTML表单中的字段名称后面。
当PHP引擎看到提交的表单字段名称在末尾使用方括号,它会在$ _GET或$ _POST中创建一个嵌套的值数组和$ _REQUEST超全局数组,而不是单个值。
然后,您可以拉出单个值嵌套数组。 因此,您可以创建一个多选列表控件,如下所示:
<select name="mySelection[]" id="mySelection" size="3" multiple="multiple"> ... </select>
然后,您可以检索包含提交的字段值的数组,如下所示:
$favoriteLanguage = $_GET["mySelection"]; // If using get method $favoriteLanguage = $_POST["mySelection"]; // If using post method
具有多值字段的注册表
<!DOCTYPE html5> <html> <body> <form action="index.php" method="post"> <label for="firstName">First name</label> <input type="text" name="firstName" id="firstName" value="" /> <label for="mySelection">What are your favorite widgets?</label> <select name="mySelection[]" id="mySelection" size="3" multiple="multiple"> <option value="PHP">PHP Language</option> <option value="Java">Java Language</option> <option value="CSS">CSS Language</option> </select> <label for="tested">Choice One?</label> <input type="checkbox" name="chioces[]" id="ChoiceOne" value="testTask" /> <label for="designed">Choice Two?</label> <input type="checkbox" name="chioces[]" id="ChoiceTwo" value="designTask" /> <input type="submit" name="submitButton" id="submitButton" value="Send Details" /> <input type="reset" name="resetButton" id="resetButton" value="Reset Form"/> </div> </form> </body> </html>
现在将以下脚本作为index.php保存在文档根文件夹中:
<!DOCTYPE html5> <html> <body> <?php $mySelection = ""; $chiocess = ""; if ( isset( $_POST["mySelection"] ) ) { foreach ( $_POST["mySelection"] as $widget ) { $mySelection .= $widget . ", "; } } if ( isset( $_POST["chioces"] ) ) { foreach ( $_POST["chioces"] as $chioces ) { $chiocess .= $chioces . ", "; } } $mySelection = preg_replace( "/, $/", "", $mySelection ); $chiocess = preg_replace( "/, $/", "", $chiocess ); ?><dl> <dt>First name</dt><dd><?php echo $_POST["firstName"]?></dd> <dt>Favorite widgets</dt><dd><?php echo $mySelection?></dd> <dt>You want to receive the following chiocess:</dt><dd> <?php echo $chiocess?></dd> <dt>Comments</dt><dd><?php echo $_POST["comments"]?></dd> </dl> </body> </html>
PHP教程 -PHP for循环for循环由声明,条件和操作组成:declaration defines a loop-counter variable and sets it to a starting ...
PHP nl2br() 函数PHP String 参考手册实例 在字符串中的新行(n)之前插入换行符:?php echo nl2br("One line.nAnother line.");...
PHP rmdir() 函数 完整的 PHP Filesystem 参考手册定义和用法 rmdir() 尝试删除dirname所指定的目录。 该目录必须是空的,而且要...
PHP 7 use 语句 PHP 7 新特性PHP 7 可以使用一个 use 从同一个 namespace 中导入类、函数和常量:实例实例//PHP7之前版本需要使...
PHP curl_escape函数 PHP cURL参考手册(PHP 5 >= 5.5.0)curl_escape — 对给定的字符串进行URL编码。说明string curl_escape ( r...