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 相关文章推荐
PHPMailer安装方法及简单实例
Nov 25 PHP
smarty模板嵌套之include与fetch性能测试
Dec 05 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
Jun 13 PHP
javascript数组与php数组的地址传递及值传递用法实例
Jan 22 PHP
php删除文本文件中重复行的方法
Apr 28 PHP
PHP实现过滤掉非汉字字符只保留中文字符
Jun 04 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
Dec 07 PHP
twig里使用js变量的方法
Feb 05 PHP
php自定义函数实现二维数组排序功能
Jul 20 PHP
基于thinkPHP实现的微信自定义分享功能示例
Sep 23 PHP
php生出随机字符串
Jul 06 PHP
PHP fopen中文文件名乱码问题解决方案
Oct 28 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
桌面中心(三)修改数据库
2006/10/09 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
php利用嵌套数组拼接与解析json的方法
2017/02/07 PHP
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
很棒的js选项卡切换效果
2016/07/15 Javascript
使用jquery datatable和bootsrap创建表格实例代码
2017/03/17 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
2019/03/22 Javascript
vue实现导航菜单和编辑文本的示例代码
2020/07/04 Javascript
[56:18]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
初步解析Python中的yield函数的用法
2015/04/03 Python
详解Python字典的操作
2019/03/04 Python
python @classmethod 的使用场合详解
2019/08/23 Python
Python requests模块session代码实例
2020/04/14 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
餐厅总厨求职信
2014/03/04 职场文书
校园公益广告语
2014/03/13 职场文书
升国旗演讲稿
2014/09/05 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript