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+AJAX实现无刷新注册(带用户名实时检测)
Jan 02 PHP
在PHP中使用Sockets 从Usenet中获取文件
Jan 10 PHP
PHP Squid中可缓存的动态网页设计
Sep 17 PHP
解析php中heredoc的使用方法
Jun 17 PHP
PHP延迟静态绑定示例分享
Jun 22 PHP
PHP中new static() 和 new self() 的区别介绍
Jan 09 PHP
PHP简单生成缩略图相册的方法
Jul 29 PHP
PHP文件上传处理案例分析
Oct 15 PHP
php用wangeditor3实现图片上传功能
Aug 22 PHP
PHP 代码简洁之道(小结)
Oct 16 PHP
laravel添加前台跳转成功页面示例
Oct 22 PHP
PHP tp5中使用原生sql查询代码实例
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
destoon设置自定义搜索的方法
2014/06/21 PHP
php实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
php实现的简单日志写入函数
2015/03/31 PHP
PHP数组相加操作及与array_merge的区别浅析
2016/11/26 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
多个js与css文件的合并方法详细说明
2012/12/26 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
jQuery构造函数init参数分析续
2015/05/13 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
2016/04/01 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
2017/12/16 Javascript
代码整洁之道(重构)
2018/10/25 Javascript
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
微信小程序云函数使用mysql数据库过程详解
2019/08/07 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
Vue中this.$nextTick的作用及用法
2020/02/04 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
python爬取网易云音乐评论
2018/11/16 Python
如何用Python做一个微信机器人自动拉群
2019/07/03 Python
关于Python 中的时间处理包datetime和arrow的方法详解
2020/03/19 Python
HTML5未来发展趋势
2016/02/01 HTML / CSS
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
CHARLES & KEITH台湾官网:新加坡时尚品牌
2019/07/30 全球购物
药学专业个人的自我评价
2013/12/31 职场文书
公司踏青活动方案
2014/08/16 职场文书
导游词300字
2015/02/13 职场文书
信仰纪录片观后感
2015/06/08 职场文书
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python