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安装攻略:常见问题解答(二)
Oct 09 PHP
mysql时区问题
Mar 26 PHP
中英文字符串翻转函数
Dec 09 PHP
抓取YAHOO股票报价的类
May 15 PHP
PHP反射机制用法实例
Aug 28 PHP
PHP计算指定日期所在周的开始和结束日期的方法
Mar 24 PHP
详解PHP序列化反序列化的方法
Oct 27 PHP
PHP yii实现model添加默认值的方法(两种方法)
Nov 10 PHP
php workerman定时任务的实现代码
Dec 23 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
May 27 PHP
Swoole扩展的6种模式深入详解
Mar 04 PHP
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
Apr 01 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输出xml格式字符串(用的这个)
2012/07/12 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
2016/03/01 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
jQuery日程管理插件fullcalendar使用详解
2017/01/07 Javascript
在Vue.js中使用Mixins的方法
2017/09/12 Javascript
如何解决jQuery 和其他JS库的冲突
2020/06/22 jQuery
vue实现图片裁剪后上传
2020/12/16 Vue.js
python进程管理工具supervisor使用实例
2014/09/17 Python
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
python统计文本文件内单词数量的方法
2015/05/30 Python
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
解决python 找不到module的问题
2020/02/12 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
利用CSS3实现开门效果实例源码
2016/08/22 HTML / CSS
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
临床医师专业个人自我评价范文
2013/11/07 职场文书
中式餐厅创业计划书范文
2014/01/23 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
政风行风整改方案
2014/10/25 职场文书
计划生育诚信协议书
2014/11/02 职场文书
先进个人材料怎么写
2014/12/30 职场文书
贷款工作证明模板
2015/06/12 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
《西门豹》教学反思
2016/02/23 职场文书
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle
Redis分布式锁的7种实现
2022/04/01 Redis