PHP表單遞交控件名稱含有點號(.)會被轉(zhuǎn)化為下劃線(_)的處理方法
更新時間:2013年01月06日 15:20:08 作者:
做項目的過程中發(fā)現(xiàn),表單遞交就是不成功,后來發(fā)現(xiàn)原來我給控件的名字不規(guī)范導(dǎo)致,控件遞交到后端之后,發(fā)現(xiàn)所有我控件名字中含有.號的名字,遞交過之后都會被轉(zhuǎn)化成下劃線_
最近在做公司項目的時候,發(fā)現(xiàn)一個奇怪的問題,遞交一個正常表單,竟然發(fā)現(xiàn)不能正常獲取到遞交的值,這一發(fā)現(xiàn),不免讓我開始的時候一頭霧水,開始的時候一度認(rèn)為是我的服務(wù)有問題,不能正常的寫入數(shù)據(jù)庫,后來偵測SQL語句發(fā)現(xiàn),原來問題竟然出現(xiàn)在獲取數(shù)據(jù)上,獲取到的數(shù)據(jù)竟然都是空的,后來一調(diào)試發(fā)現(xiàn),原來遞交到后端的所有變量,都已經(jīng)不是預(yù)期中的變量,竟然被PHP轉(zhuǎn)化了。
提供測試代碼如下:
<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
運行之后結(jié)果如下:

圖1
可以看到,所有我在控件中含有的.號,都被后端轉(zhuǎn)化成了_下劃線,為了測試其他的一些符號,所以做了如上的測試,至今為止,僅發(fā)現(xiàn)點號(.)會被轉(zhuǎn)化為下劃線(_),所以導(dǎo)致在后端我想當(dāng)然的用info.name去訪問的時候,不能發(fā)現(xiàn),因為它其實已經(jīng)被轉(zhuǎn)化成了info_name。
提供測試代碼如下:
復(fù)制代碼 代碼如下:
<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
運行之后結(jié)果如下:

圖1
可以看到,所有我在控件中含有的.號,都被后端轉(zhuǎn)化成了_下劃線,為了測試其他的一些符號,所以做了如上的測試,至今為止,僅發(fā)現(xiàn)點號(.)會被轉(zhuǎn)化為下劃線(_),所以導(dǎo)致在后端我想當(dāng)然的用info.name去訪問的時候,不能發(fā)現(xiàn),因為它其實已經(jīng)被轉(zhuǎn)化成了info_name。
相關(guān)文章
PHP 函數(shù)call_user_func和call_user_func_array用法詳解
下面來和大家分享一下這個call_user_func_array和call_user_func函數(shù)的用法,另外附贈func_get_args()函數(shù)和func_num_args()函數(shù),嘿嘿!!2014-03-03
PHP實現(xiàn)的MD5結(jié)合RSA簽名算法實例
這篇文章主要介紹了PHP實現(xiàn)的MD5結(jié)合RSA簽名算法,結(jié)合實例形式分析了php使用md5結(jié)合RSA實現(xiàn)的簽名算法相關(guān)操作技巧,并附帶了RSA公鑰與私鑰的相關(guān)說明,需要的朋友可以參考下2017-10-10
PHP實現(xiàn)實時生成并下載超大數(shù)據(jù)量的EXCEL文件詳解
EXCEL文件的處理是我們在日常工作中經(jīng)常會遇到的,這篇文章主要給大家介紹了關(guān)于利用PHP如何實現(xiàn)實時生成并下載超大數(shù)據(jù)量的EXCEL文件,通過文中介紹的這個方法對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考借鑒,下面來一起看看吧。2017-10-10
關(guān)于PHPDocument 代碼注釋規(guī)范的總結(jié)
本篇文章是對PHPDocument代碼注釋規(guī)范進行了詳細(xì)的總結(jié)與介紹,需要的朋友參考下2013-06-06
PHP實現(xiàn)提高SESSION響應(yīng)速度的幾種方法詳解
這篇文章主要介紹了PHP實現(xiàn)提高SESSION響應(yīng)速度的幾種方法,結(jié)合實例形式分析了php操作session的機制與提高session響應(yīng)速度的常見操作技巧,需要的朋友可以參考下2019-08-08
php遞歸創(chuàng)建和刪除文件夾的代碼小結(jié)
有時候需要遞歸創(chuàng)建和刪除文件夾,那么就可以參考下面的代碼2012-04-04

