PHP表單提交表單名稱含有點號(.)則會被轉(zhuǎn)化為下劃線(_)
更新時間:2011年12月14日 22:37:21 作者:
做項目的過程中發(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é)果如下:
可以看到,所有我在控件中含有的.號,都被后端轉(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é)果如下:
可以看到,所有我在控件中含有的.號,都被后端轉(zhuǎn)化成了_下劃線,為了測試其他的一些符號,所以做了如上的測試,至今為止,僅發(fā)現(xiàn)點號(.)會被轉(zhuǎn)化為下劃線(_),所以導(dǎo)致在后端我想當(dāng)然的用info.name去訪問的時候,不能發(fā)現(xiàn),因為它其實已經(jīng)被轉(zhuǎn)化成了info_name。
所以以后大家在使用表單的時候,盡量不要用.命名。
相關(guān)文章
Discuz! 5.0.0論壇程序中加入一段js代碼,讓會員點擊下載附件前自動彈出提示窗口
Discuz! 5.0.0論壇程序中加入一段js代碼,讓會員點擊下載附件前自動彈出提示窗口...2007-04-04php使用function_exists判斷函數(shù)可用的方法
這篇文章主要介紹了php使用function_exists判斷函數(shù)可用的方法,通過一個圖像處理函數(shù)中使用function_exists函數(shù)判斷并輸出來實現(xiàn)函數(shù)存在判斷與流程靈活控制的功能,具有很好的借鑒價值,需要的朋友可以參考下2014-11-11