说明

示例中使用用函数说明:

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. WCF布署问题1 :HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。...
  2. AI:2021年WAIC世界人工智能大会2021年7月9日《可信AI论坛》、《AI引领探索保险科技新价值》、《产研共育·数智未来》等论坛演讲内容分享及解读
  3. Android USB Gadget复合设备驱动(打印机)测试方法
  4. 分布式系统面试 - 常见问题
  5. 【Tyvj3500】【BZOJ1031】字符加密,后缀数组
  6. Transformer为啥在NER上表现不好
  7. 智能优化算法(源码)-海鸥优化算法(SOA)
  8. c++ 0x3f 0x3f3f 0x3f3f3f 0x3f3f3f3f的具体值
  9. 跟小甲鱼学Web开发笔记06(最新进展不按进度顺序)
  10. YOYOW-WeCenter特别版免费开源发布,一小时建立你的问答社区
  11. java小游戏大鱼吃小鱼入门(音乐添加+鱼头转向+背景移动+背景泡泡效果)
  12. ML-Agents案例之蠕虫
  13. homepod怎么设置为中文_HomePod终于能听懂中文了,但它真能搞定智能家居吗?
  14. Dython 容联云的一个测试短信验证码
  15. IST改进算法之Two-Step Iterative Shrinkage/Thresholding(TwIST)
  16. css小技巧(文字两端对齐)
  17. 阿里巴巴 暑假实习 笔试题(2014年3月29日)
  18. mysql 慢日志 逻辑读_运维日记| MySQLOracle深度解析之一:逻辑读
  19. 手机工作室网络如何组建?
  20. 手把手教你做树莓派魔镜-MagicMirror(二)-烧写系统卡

热门文章

  1. 用python直接调用asr技术_语音识别技术ASR(一)基本概念
  2. table2excel.js兼容ie问题
  3. 看月亮爬上来 失眠的时候听听
  4. 基于keras与tensorflow手工实现ResNet50网络
  5. matlab结果中有虚数,Matlab数值积分结果是虚数
  6. 亲,你的浏览器过时了,请立即更换Chrome浏览器。
  7. Java爬虫获取天猫商品类目
  8. mysql分表的原则_mysql分表规则(转)
  9. kafka 安装和启动
  10. 图像处理系列——直方图统计算法