说明

示例中使用用函数说明:

isset函数()

当要 判断一个变量是否已经声明的时候 可以使用 isset 函数,可以避免Notice:Undefined index...错误

htmlspecialchars() 函数

避免利用 $_SERVER["PHP_SELF"] 导致xss攻击,用户提交代码当做字符串处理

PHP 表单处理

test.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8">
</head>
<body><form action="test.php" method="post">用户名:<input type="text" name="user" >密码:<input type="password" name="passwd"><input type="submit"></form>
</body>
</html>

test.php

您输入的账户是:<?php echo $_POST["user"]; ?>!<br>
您输入的密码是:<?php echo $_POST["passwd"]; ?>

PHP 下拉菜单单选

<?php
$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';
if($q) {if($q =='JavaScript') {echo "您选择的是:JavaScript";} else if($q =='python') {echo "您选择的是:python";} else if($q =='PHP') {echo "您选择的是:PHP";}
} else {?><form action="" method="get"><select name="q"><option value="">选择语言:</option><option value="JavaScript">JavaScript</option><option value="python">python</option><option value="PHP">PHP</option></select><input type="submit" value="提交"></form><?php
}
?>

PHP 下拉菜单多选

如果下拉菜单是多选的( multiple="multiple"),我们可以通过将设置 select name="q[]" 以数组的方式获取,以下使用 POST 方式提交

<?php
$q = isset($_POST['q'])? $_POST['q'] : '';
if(is_array($q)) {$sites = array('python' => 'http://www.python.org','php' => 'https://www.php.net/','JavaScript' => 'https://www.javascript.com/',);foreach($q as $val) {// PHP_EOL 为常量,用于换行echo $sites[$val] . PHP_EOL;}} else {?><form action="" method="post"><select multiple="multiple" name="q[]"><option value="">选择一种语言:</option><option value="python">python</option><option value="php">php</option><option value="JavaScript">JavaScript</option></select><input type="submit" value="提交"></form><?php
}
?>

单选按钮表单

PHP 单选按钮表单中 name 属性的值是一致的,value 值是不同的

<?php
$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';
if($q) {if($q =='JavaScript') {echo "您选择的是:JavaScript";} else if($q =='python') {echo "您选择的是:python";} else if($q =='PHP') {echo "您选择的是:PHP";}
} else {?><form action="" method="get"><input type="radio" name="q" value="python" />python<input type="radio" name="q" value="JavaScript" />JavaScript<input type="radio" name="q" value="PHP" />PHP<input type="submit" value="提交"></form><?php
}
?>

checkbox 复选框

<?php
$q = isset($_POST['q'])? $_POST['q'] : '';
if(is_array($q)) {$sites = array('python' => 'http://www.python.org','php' => 'https://www.php.net/','JavaScript' => 'https://www.javascript.com/',);foreach($q as $val) {// PHP_EOL 为常量,用于换行echo $sites[$val] . PHP_EOL;}} else {?><form action="" method="post"><input type="checkbox" name="q[]" value="python"> python<br><input type="checkbox" name="q[]" value="php"> php<br><input type="checkbox" name="q[]" value="JavaScript"> JavaScript<br><input type="submit" value="提交"></form><?php
}
?>

表单栅格化处理

利用htmlspecialchars()函数来对提交的数据进行栅格化处理,屏蔽提交代码渲染防止xss攻击

<?php
// 定义变量并默认设置为空值
$name = $email = $gender = $comment = $website = "";if ($_SERVER["REQUEST_METHOD"] == "POST")
{$name = test_input($_POST["name"]);$email = test_input($_POST["email"]);$website = test_input($_POST["website"]);$comment = test_input($_POST["comment"]);$gender = test_input($_POST["gender"]);
}function test_input($data)
{if (!is_array($data)){$data = trim($data);$data = stripslashes($data);$data = htmlspecialchars($data);}return $data;
}
?>

表单综合示例

test.html

<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
<body><h1>用户注册页面</h1><form method="post" action="test.php">用户:<input type="text" name="user"><br>密码:<input type="password" name="passwd"><br>姓名:<input type="text" name="name"><br>邮箱:<input type="email" name="email"><br>性别:<input type="radio" name="gender" value="true"/>男<input type="radio" name="gender" value="false"/>女<br>喜欢的开发语言:<input type="checkbox" name="subjects[]" value="python"> python<input type="checkbox" name="subjects[]" value="PHP "> PHP<input type="checkbox" name="subjects[]" value="JavaScript"> JavaScript<br><input type="submit" value="提交"></form>
</body>
</html>

test.php

<?php
// 定义变量并默认设置为空值
$user = $passwd = $name= $email = $gender = $subjects = "";if ($_SERVER["REQUEST_METHOD"] == "POST") {$user = test_input($_POST["user"]);$passwd = test_input($_POST["passwd"]);$name = test_input($_POST["name"]);$email = test_input($_POST["email"]);$gender = test_input($_POST["gender"]);$subjects = test_input($_POST["subjects"]);print("所有数据:");print_r($_POST);print("<br>");print("PHP获取到的【用户】:");print($user);print("<br>");print("PHP获取到的【密码】:");print($passwd);print("<br>");print("PHP获取到的【姓名】:");print($name);print("<br>");print("PHP获取到的【邮箱】:");print($email);print("<br>");print("PHP获取到的【性别】:");print($gender);print("<br>");print("PHP获取到的【学科】:");print_r($subjects);
}
function test_input($data)
{if (!is_array($data)){$data = trim($data);$data = stripslashes($data);$data = htmlspecialchars($data);}return $data;
}
?>

结果展示

所有数据:Array ( [user] => xiaoming [passwd] => 123456 [name] => 小明 [email] => xiaoming@email.com [gender] => true [subjects] => Array ( [0] => python [1] => PHP ) )
PHP获取到的【用户】:xiaoming
PHP获取到的【密码】:123456
PHP获取到的【姓名】:小明
PHP获取到的【邮箱】:xiaoming@email.com
PHP获取到的【性别】:true
PHP获取到的【学科】:Array ( [0] => python [1] => PHP )

转载于:https://my.oschina.net/zhaojunhui/blog/3086002

PHP基础-表单数据相关推荐

  1. php获取post表单数据_PHP如何通过post方法来获取form表单中数据?(代码示例)

    我们在网站开发过程中,通常都会遇到关于php form表单的相关操作.如php获取带有post提交方法的表单数据,这种该如何操作呢?如果大家有看过我[PHP如何通过get方法获得form表单数据?]这 ...

  2. 网络——提交表单数据(post方式)

    [0]README 1) 本文文字描述 转自 core java volume 2 , 旨在理解 网络--提交表单数据 的基础知识 : 2) for source code, please visit ...

  3. Linkflow+表单工具:赋能表单数据,提升表单营销能力

    前言 本文旨在帮助企业实现敏捷高效运营,提升用户数据运营效能.在这里,我们将提供Linkflow+表单工具的组合场景玩法,以帮助企业提升表单营销能力,更好实现用户精细化运营和自动化营销. 如果您有以下 ...

  4. 基于elementUI封装了基础表单组件

    开头先BB两句 elementUI的表单组件,自带表单验证规则.虽然已经很方便了,但是我还是想封装一下. 通常用到的表单类型,主要包括:Radio 单选框,输入框,下拉框. 我封装了一个基础组件.把这 ...

  5. html怎么获取form表单数据,如何优雅的获取Form表单数据?

    先看一个简单的例子 比如这里有一个简单的 form 表单 r1 r2 r3 r4 c1 c2 c3 c4 login reset 页面如下 现在,随便输入点内容 如果提交,表单会触发默认行为,直接以g ...

  6. HTML标签汇总(基础表单部分)

    HTML标签汇总(基础表单部分) <form> 用于用户输入创建的HTML表单 表单包含<input>元素,比如文本字段,复选框,单选框,提交按钮等等 表单还可以包含menus ...

  7. php 保存表单数据,使用jquery和php自动保存表单数据

    我对PHP非常好,但是使用jQuery的总菜单,并且卡在自动保存表单数据中. 自动保存功能在dummy.php中每30秒调用一次.我正在将用于处理的序列化表单数据( – >数据库)发送到save ...

  8. php中的全局变量$_POST收集表单数据

    < !-- php中的$POST被广泛的用于手机表单数据,在HTML中from的标签指定的该属性是method="post" 下面我们将显示一个输入的字段,以及一个提交的按钮 ...

  9. WebApi发送HTML表单数据:文件上传与多部分MIME

    5.3 Sending HTML Form Data 5.3 发送HTML表单数据(2) 本文引自:http://www.cnblogs.com/r01cn/archive/2012/12/20/28 ...

最新文章

  1. 中国水泥电杆市场全景调研及发展战略研究报告2022-2028年版
  2. 数据结构课程设计------扫雷游戏(升级版,可展开)
  3. Android 贴纸样式标签
  4. python celery应用场景_python celery 模块
  5. 法国 计算机 转专业,在法国留学怎样换专业
  6. python3.7 matplotlib增加坐标说明_python matplotlib:如何在极坐标图中的轴和刻度标签之间插入更多空格?...
  7. python中如何导入数据包_如何在python中发送数据包?
  8. server端多个文件的压缩 .NET
  9. Servlet-ServletConfig对象
  10. Unicode字符需要几个字节来存储?
  11. 露天停车场的matlab代码,室外停车场设计规范 · 干货
  12. 一招教你如何调整图片的分辨率DPI?
  13. 漫步STL-string in [Cpp] v.s. String in [Java]
  14. Mac上将mp4视频做成屏保
  15. 成功制作海报的十个简单法则
  16. html鼠标在ie上抖动,IE下CSS3动画抖动
  17. 在2021年为七夕Python程序与Docker牵线配对
  18. Multimodal Gesture Recognition Using 3-D Convolution and Convolutional LSTM
  19. 鸿蒙系统安装第三方应用是什么,网友表示:鸿蒙最新系统可以通过连接U盘安装第三方软件了...
  20. 【存档】中华成语千句文

热门文章

  1. 2011年12月1日-2021年12月4日
  2. 代码审计工具Checkmarx ActiveMQ 密码错误
  3. 关于对政务云密码支撑方案及应用方案设计的学习及思考
  4. matlab 断层 体三维重建,利用MATLAB实现CT断层图像的三维重建
  5. cena评测系统:自定义校验器(浮点误差)
  6. 使用微信小程序 富文本编辑器组件 editor
  7. 给select下拉框设置高度
  8. 追光几何助力RoboMaster,提升10倍效率轻松管理机械设计图纸
  9. js数组遍历方法总结
  10. Spring Cloud全家桶主要组件及简要介绍