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 相关文章推荐
使用php4加速网络传输
Oct 09 PHP
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
Jan 10 PHP
一个php Mysql类 可以参考学习熟悉下
Jun 21 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
Jun 18 PHP
提高PHP性能的编码技巧以及性能优化详细解析
Aug 24 PHP
一组PHP可逆加密解密算法实例代码
Jan 21 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
Jan 30 PHP
PHP浮点数的一个常见问题
Mar 10 PHP
PHP微信开发之查询城市天气
Jun 23 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
thinkPHP框架实现多表查询的方法
Jun 14 PHP
php下的原生ajax请求用法实例分析
Feb 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
PHP的FTP学习(二)[转自奥索]
2006/10/09 PHP
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
PHP中其实也可以用方法链
2011/11/10 PHP
YII Framework教程之异常处理详解
2016/03/14 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011/09/13 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
Vue2单一事件管理组件通信
2017/05/09 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
2020/11/06 Javascript
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python运行的17个时新手常见错误小结
2012/08/07 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
超市促销实习自我鉴定
2013/09/23 职场文书
公司门卫管理制度
2014/02/01 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
优秀员工事迹材料
2014/12/20 职场文书
初中成绩单评语
2014/12/29 职场文书
五年级下册复习计划
2015/01/19 职场文书
vue+element ui实现锚点定位
2021/06/29 Vue.js
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS
python井字棋游戏实现人机对战
2022/04/28 Python