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 md5下16位和32位的实现代码
Apr 09 PHP
PHP 七大优势分析
Jun 23 PHP
php中将地址生成迅雷快车旋风链接的代码[测试通过]
Apr 20 PHP
php递归创建和删除文件夹的代码小结
Apr 13 PHP
php开发留言板的CRUD(增,删,改,查)操作
Apr 19 PHP
如何解决CI框架的Disallowed Key Characters错误提示
Jul 05 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
php实现的IMEI限制的短信验证码发送类
May 05 PHP
Zend Framework基本页面布局分析
Mar 19 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
May 27 PHP
如何判断php mysqli扩展类是否开启
Dec 24 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 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
咖啡机如何保养和日常清洁?
2021/03/03 冲泡冲煮
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
PHP输出数组中重名的元素的几种处理方法
2012/09/05 PHP
基于PHP静态类的原罪详解
2013/05/06 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
利用jq让你的div居中的好方法分享
2013/11/21 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
vue2.0实现列表数据增加和删除
2020/06/17 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
react+antd 递归实现树状目录操作
2020/11/02 Javascript
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
Python操作列表的常用方法分享
2014/02/13 Python
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
详解Django中间件的5种自定义方法
2018/07/26 Python
python学生信息管理系统(完整版)
2020/04/05 Python
Python实现查找最小的k个数示例【两种解法】
2019/01/08 Python
anaconda如何查看并管理python环境
2019/07/05 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
python openCV自制绘画板
2020/10/27 Python
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
高三毕业生自我鉴定
2013/12/20 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
经理助理岗位职责
2015/02/02 职场文书
Redis 异步机制
2022/05/15 Redis