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和ACCESS写聊天室(三)
Oct 09 PHP
source.php查看源文件
Dec 09 PHP
php中截取字符串支持utf-8
Jan 18 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
Jan 29 PHP
PHP将两个关联数组合并函数提高函数效率
Mar 18 PHP
Symfony2创建基于域名的路由相关示例
Nov 14 PHP
CI框架入门之MVC简单示例
Nov 21 PHP
PHP对象、模式与实践之高级特性分析
Dec 08 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
PHP ADODB实现分页功能简单示例
May 25 PHP
PHP7 mongoDB扩展使用的方法分享
May 02 PHP
PHP与Web页面的交互示例详解一
Aug 04 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
这部好评如潮的动漫 知名梗频出 但是画风劝退很多人
2020/03/08 日漫
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
javascript 禁止复制网页
2009/06/11 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
js精确的加减乘除实例
2017/11/14 Javascript
jQuery实现滚动效果
2017/11/17 jQuery
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
[55:03]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.20
2020/11/20 DOTA
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
python 在某.py文件中调用其他.py内的函数的方法
2019/06/25 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
维也纳通行证:Vienna PASS
2019/07/18 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
医院总经理岗位职责
2014/02/04 职场文书
护士优质服务演讲稿
2014/08/26 职场文书
党课培训心得体会
2014/09/02 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
Python爬虫基础之初次使用scrapy爬虫实例
2021/06/26 Python