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 相关文章推荐
通过PHP current函数获取未知字符键名数组第一个元素的值
Jun 24 PHP
php5.5新数组函数array_column使用
Jul 08 PHP
一个PHP针对数字的加密解密类
Mar 20 PHP
php中Session的生成机制、回收机制和存储机制探究
Aug 19 PHP
ThinkPHP自动填充实现无限级分类的方法
Aug 22 PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 PHP
Laravel 5 框架入门(一)
Apr 09 PHP
PHP实现C#山寨ArrayList的方法
Jul 16 PHP
浅析Yii2集成富文本编辑器redactor实例教程
Apr 25 PHP
thinkphp3.x中session方法的用法分析
May 20 PHP
PHP项目多语言配置平台实现过程解析
May 18 PHP
PHP读取文件或采集时解决中文乱码
Mar 09 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 DOMElement 操作xml 文档的实现代码
2013/05/10 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
2015/12/14 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
jQuery通用的全局遍历方法$.each()用法实例
2016/07/04 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
详解webpack的proxyTable无效的解决方案
2018/06/15 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
2020/02/11 Javascript
[01:01:18]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#2COL VS LGD
2016/03/03 DOTA
Python使用urllib2获取网络资源实例讲解
2013/12/02 Python
Python实现的递归神经网络简单示例
2017/08/11 Python
Python遍历numpy数组的实例
2018/04/04 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
应届生财务管理求职信
2013/11/06 职场文书
高中生学习计划书
2014/09/15 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
《刷子李》教学反思
2016/02/20 职场文书