PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)_php技巧

最近在做公司项目的时候,发现一个奇怪的问题,递交一个正常表单,竟然发现不能正常获取到递交的值,这一发现,不免让我开始的时候一头雾水,开始的时候一度认为是我的服务有问题,不能正常的写入数据库,后来侦测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
运行之后结果如下:

图1
可以看到,所有我在控件中含有的.号,都被后端转化成了_下划线,为了测试其他的一些符号,所以做了如上的测试,至今为止,仅发现点号(.)会被转化为下划线(_),所以导致在后端我想当然的用info.name去访问的时候,不能发现,因为它其实已经被转化成了info_name。

所以以后大家在使用表单的时候,尽量不要用.命名。

时间: 2024-09-09 10:31:03

PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)_php技巧的相关文章

PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法_php技巧

最近在做公司项目的时候,发现一个奇怪的问题,递交一个正常表单,竟然发现不能正常获取到递交的值,这一发现,不免让我开始的时候一头雾水,开始的时候一度认为是我的服务有问题,不能正常的写入数据库,后来侦测SQL语句发现,原来问题竟然出现在获取数据上,获取到的数据竟然都是空的,后来一调试发现,原来递交到后端的所有变量,都已经不是预期中的变量,竟然被PHP转化了. 提供测试代码如下: 复制代码 代码如下: <html> <head> <title>测试表单提交</title

AngularJS表单操作几个例子(表单提交,表单编辑默认值)

模仿着我要搞了个AngularJS Form,但是问题来了.... 发现初始化时候ng-model 跟 input 标签里的 value 不默契,冲突.. 后来想再AngularJS controller 里预先赋值 $scope.formData = {'name':'张三'}; 可以通过php程序把值赋到这个AngularJS controller里  代码如下 复制代码 <!-- AngularJS controller --> <script>     var formAp

ajax跨域(基础域名相同)表单提交的方法_AJAX相关

本文实例讲述了ajax跨域(基础域名相同)表单提交的方法.分享给大家供大家参考.具体如下: 1.要在做ajax提交的页面中添加如下js语句: <script type="text/javascript"> document.domain="基础域名"; </script> 2.ajax表单提交表单时可以使用一个jquery的一个表单插件jquery.form.js 使用语法如下: //fromPost为要收集数据的form表单的id $(&q

ajax跨域(基础域名相同)表单提交的方法

本文实例讲述了ajax跨域(基础域名相同)表单提交的方法.分享给大家供大家参考.具体如下: 1.要在做ajax提交的页面中添加如下js语句: <script type="text/javascript"> document.domain="基础域名"; </script> 2.ajax表单提交表单时可以使用一个jquery的一个表单插件jquery.form.js 使用语法如下: //fromPost为要收集数据的form表单的id $(&q

表单提交错误后返回内容消失问题的解决方法(PHP网站)_php技巧

表单提交错误后返回内容消失怎么办呐,今天就来分析解决一下这个问题. 状况概述: 做填写表单信息提交的时候会碰到一个问题就是当用户填写并提交表单后,程序判断不符合要求并返回,返回之后之前填写的表单信息会被清空了的情况.如果填写的信息量少还无所谓,如果填写的信息量比较多,这会直接打击到填写信息的人的良好心情.因此解决表单提交错误返回后填写的内容消失的问题是一个提高用户体验度的迫在眉睫的问题.对于这种问题,综合总结了大概有下面几种情况: (1)页面使用了session_start函数,这个函数有个特点

怎么用过滤器实现 表单提交单引号问题?

问题描述 表单提交,插入数据库时有单引号会出错,在servlet里这样写我会:Stringmemo=request.getParameter("memo").replaceAll("'","'");我想创建一个过滤器处理,怎么建呢? 解决方案 解决方案二:引用楼主umyueyue的回复: 表单提交,插入数据库时有单引号会出错,在servlet里这样写我会:Stringmemo=request.getParameter("memo&quo

常用的表单提交判断函数

表单提交|函数 <SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript> //函数名:chksafe //功能介绍:检查是否含有"'",'\\',"/" //参数说明:要检查的字符串 //返回值:0:是 1:不是 function chksafe(a) { return 1; /* fibdn = new Array ("'" ,"\\", "."

实时显示-ASP表单提交后显示等待 后台管理选择通过或者不通过 然后前台跳转

问题描述 ASP表单提交后显示等待 后台管理选择通过或者不通过 然后前台跳转 前台提交一个表单 点提交后显示正在提交 然后后台显示表单内容 选择通过验证后 前台正在提交就变成提交成功 选择不通过 前台就显示提交失败 求大神写个实例代码 没有C币了 解决方案 if Request.Forms("表单名") = 正确的内容 then Response.Redirect("正确.asp") else Response.Redirect("错误.asp"

java-jsp表单提交保存很多字段,其中一个是blob字段,怎么保存并显示

问题描述 jsp表单提交保存很多字段,其中一个是blob字段,怎么保存并显示 提交表单,里面包含有blob图片怎么处理,急.求助大神帮帮找弟,谢谢啦. 解决方案 没这么提交过,都是图片先上传单独传,然后再提交其他的.或者ajaxform提交,可以传图片流的同时带其他参. 解决方案二: 先用ajax把图片提交了,然后在提交其余数据. 解决方案三: 你在blog里面上传完图片应该就直接返回一个地址,然后把所有内容正常提交,用string类型接收一下,就ok了 解决方案四: 先传图片,再传其他值 解决