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写的小东西
Dec 06 PHP
FCKeditor添加自定义按钮
Mar 27 PHP
PHP扩展编写点滴 技巧收集
Mar 09 PHP
PHP开发不能违背的安全规则 过滤用户输入
May 01 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 PHP
PHP中strtotime函数使用方法详解
Nov 27 PHP
支付宝接口开发集成支付环境小结
Mar 17 PHP
基于PHP生成简单的验证码
Jun 01 PHP
php静态成员方法和静态的成员属性的使用方法
Oct 26 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
PHP赋值的内部是如何跑的详解
Jan 13 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使用JSON和将json还原成数组
2015/02/12 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
javascript奇异的arguments分析
2010/10/20 Javascript
jquery处理json对象
2014/11/03 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
js canvas仿支付宝芝麻信用分仪表盘
2016/11/16 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
浅谈Webpack多页应用HMR卡住问题
2019/04/24 Javascript
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
2019/07/22 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
vue 实现websocket发送消息并实时接收消息
2019/12/09 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
用TensorFlow实现戴明回归算法的示例
2018/05/02 Python
python+flask实现API的方法
2018/11/21 Python
Python实现将多个空格换为一个空格.md的方法
2018/12/20 Python
详解python中@的用法
2019/03/27 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
virtualenv介绍及简明教程
2020/06/23 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
大二法英学生职业生涯规划范文
2014/02/27 职场文书
计生工作先进事迹
2014/08/15 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
设备收款委托书范本
2014/10/02 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python