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

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

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

