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 相关文章推荐
MySQL修改密码方法总结
Mar 25 PHP
用PHP读取RSS feed的代码
Aug 01 PHP
判断PHP数组是否为空的代码
Sep 08 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 PHP
php数组合并array_merge()函数使用注意事项
Jun 19 PHP
php连接odbc数据源并保存与查询数据的方法
Dec 24 PHP
php上传文件问题汇总
Jan 30 PHP
Laravel5中contracts详解
Mar 02 PHP
php表单提交实例讲解
Nov 12 PHP
详解PHP对数组的定义以及数组的创建方法
Nov 27 PHP
PHP可变变量学习小结
Nov 29 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 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正则表达匹配中文问题分析小结
2012/03/25 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
php readfile()修改文件上传大小设置
2017/08/11 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
js点击选择文本的方法
2015/02/09 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
vue实现select下拉显示隐藏功能
2019/09/30 Javascript
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
2018/03/15 Python
linux安装Python3.4.2的操作方法
2018/09/28 Python
windows10下安装TensorFlow Object Detection API的步骤
2019/06/13 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
基于Keras的格式化输出Loss实现方式
2020/06/17 Python
Python 转移文件至云对象存储的方法
2021/02/07 Python
凯伦·米莲女装网上商店:Karen Millen
2017/11/07 全球购物
酒店前台接待岗位职责
2013/12/03 职场文书
国家助学金获奖感言
2014/01/31 职场文书
大学英语专业求职信
2014/06/21 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
12.4全国法制宣传日活动方案
2014/11/02 职场文书
2014年优质护理服务工作总结
2014/11/14 职场文书
Python Django ORM连表正反操作技巧
2021/06/13 Python
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL