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 相关文章推荐
人尽可用的Windows技巧小贴士之下篇
Mar 22 PHP
dedecms系统常用术语汇总
Apr 03 PHP
php sprintf()函数让你的sql操作更安全
Jul 23 PHP
破解图片防盗链的代码(asp/php)测试通过
Jul 02 PHP
php上传图片存入数据库示例分享
Mar 11 PHP
php实现兼容2038年后Unix时间戳转换函数
Mar 18 PHP
PHP中is_file()函数使用指南
May 08 PHP
实例讲解php数据访问
May 09 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
May 27 PHP
PHP实现链式操作的原理详解
Sep 16 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
PHP使用两个栈实现队列功能的方法
Jan 15 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
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
PHP如何抛出异常处理错误
2011/03/02 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
jquery图片延迟加载 前端开发技能必备系列
2012/06/18 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
贴近用户体验的Jquery日期、时间选择插件
2015/08/19 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
2016/12/01 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
2018/01/10 Javascript
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
Python通过Django实现用户注册和邮箱验证功能代码
2017/12/11 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
python地震数据可视化详解
2019/06/18 Python
详解Python图像处理库Pillow常用使用方法
2019/09/02 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
sklearn和keras的数据切分与交叉验证的实例详解
2020/06/19 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
2020/08/07 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
基层干部十八大感言
2014/01/19 职场文书
爱心捐助活动总结
2015/05/09 职场文书
教你用Python写一个植物大战僵尸小游戏
2021/04/25 Python
详解MindSpore自定义模型损失函数
2021/06/30 Python
Sleuth+logback 设置traceid 及自定义信息方式
2021/07/26 Java/Android