PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)


Posted in PHP onDecember 14, 2011

最近在做公司项目的时候,发现一个奇怪的问题,递交一个正常表单,竟然发现不能正常获取到递交的值,这一发现,不免让我开始的时候一头雾水,开始的时候一度认为是我的服务有问题,不能正常的写入数据库,后来侦测SQL语句发现,原来问题竟然出现在获取数据上,获取到的数据竟然都是空的,后来一调试发现,原来递交到后端的所有变量,都已经不是预期中的变量,竟然被PHP转化了。
提供测试代码如下:

<html> 
<head> 
<title>测试表单提交</title> 
</head> 
<body> 
<form action="" method="post"> 
名字:<input type="text" value="test" name="info.name" /><br/> 
密码: <input type="text" value="hahaha" name="info.pwd" /><br/> 
QQ: <input type="text" value="961412" name=".info.qq" /><br/> 
住址: <input type="text" value="zhejiang" name="info|address" /><br/> 
电话: <input type="text" value="123456789" name="1——phone" /><br/> 
性别: <input type="radio" name="info_gender" value="1" checked>男 <input type="radio" name="info_gender" value="2">女<br/> 
<button type="submit" name="submit" value=""> commit</button> 
</form> 
</body> 
</html> 
<?php 
if ($_POST) { 
echo '<pre/>'; 
var_export($_POST); 
} 
?>

代码实例1
运行之后结果如下:

PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)

图1
可以看到,所有我在控件中含有的.号,都被后端转化成了_下划线,为了测试其他的一些符号,所以做了如上的测试,至今为止,仅发现点号(.)会被转化为下划线(_),所以导致在后端我想当然的用info.name去访问的时候,不能发现,因为它其实已经被转化成了info_name。

所以以后大家在使用表单的时候,尽量不要用.命名。

PHP 相关文章推荐
?生?D片??C字串
Dec 06 PHP
php 代码优化的42条建议 推荐
Sep 25 PHP
php上传大文件失败的原因及应对策略
Oct 20 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
May 18 PHP
JSON两种结构之对象和数组的理解
Jul 19 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
Laravel 实现密码重置功能
Feb 23 PHP
PHP实现的大文件切割与合并功能示例
Apr 10 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
php7下的filesize函数
Sep 30 PHP
Laravel 登录后清空COOKIE的操作方法
Oct 14 PHP
php中日期加减法运算实现代码
Dec 08 #PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 #PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 #PHP
PHP新手NOTICE错误常见解决方法
Dec 07 #PHP
PHPExcel读取Excel文件的实现代码
Dec 06 #PHP
PHP spl_autoload_register实现自动加载研究
Dec 06 #PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
Dec 06 #PHP
You might like
PHP中怎样保持SESSION不过期 原理及方案介绍
2013/08/08 PHP
php获取网页上所有链接的方法
2015/04/03 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
jquery中ajax学习笔记一
2011/10/16 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
jQuery复制节点用法示例(clone方法)
2016/09/08 Javascript
jQuery实现select模糊查询(反射机制)
2017/01/14 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
vue.js的安装方法
2017/05/12 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
Node.js中文件系统fs模块的使用及常用接口
2020/03/06 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
js实现简单的无缝轮播效果
2020/09/05 Javascript
Python中的迭代器与生成器高级用法解析
2016/06/28 Python
Python遍历目录中的所有文件的方法
2016/07/08 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
2018/05/02 Python
pymongo中聚合查询的使用方法
2019/03/22 Python
python virtualenv虚拟环境配置与使用教程详解
2020/07/13 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
移风易俗倡议书
2014/04/15 职场文书
小学作文评语大全
2014/04/21 职场文书
啤酒节策划方案
2014/05/28 职场文书
部队个人年终总结
2015/03/02 职场文书
银行催款通知书
2015/04/17 职场文书
python套接字socket通信
2022/04/01 Python
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android