簡體   English   中英

PHP:isset()未檢測到GET變量

[英]PHP: isset() doesn't detect GET variable

我有一個html表單(方法=“ get”,action =“ cart.php”),在其中使用兩個按鈕發送相同的表單。

echo '<input type="image" src="data/images/back.png" height="40px" id="back" name="back">';
echo '<input type="image" src="data/images/continue.png" height="40px" id="go" name="go">';

現在,在PHP方面,我想檢查單擊了哪個按鈕(“執行”按鈕或“后退”按鈕)。

我弄完了:

if(isset($_GET['go.x']) == true)
{
   echo 'form submitted using button GO';
}
else
{
   echo 'form submitted using button BACK';
}

我使用'go.x'變量名,因為表單傳遞了“ go.x”和“ go.y”變量(用戶單擊圖像按鈕內的確切x,y位置)

但是,isset()函數始終返回false ...怎么回事? 謝謝

手冊

因為foo.x和foo.y在PHP中會使用無效的變量名,所以它們會自動轉換為foo_x和foo_y。 也就是說,句點被下划線代替。 因此,您將像在從外部資源檢索變量部分中所述的其他變量一樣訪問這些變量。 例如,$ _ GET ['foo_x']。

用PHP的下划線替換句點時,存在一個未解決的問題 ,即表明該行為旨在在打開register_globals時將提交的變量名轉換為有效的全局名。

現在已棄用的register_globals終於被刪除了,看來行為有可能會一直更改為您一直期望的行為。

我正在嘗試回答自己的問題:

if(isset($_GET[go_x] == true))
{
}

而且有效。 現在我的新問題是:為什么在世界范圍內,PHP會將go.x GET變量轉換為go_x?

您在javascript中詳細說明了名稱為“ go”的對象,但是php無法理解變量x(“ go.x”)的外推,我建議在javascript中的數據之前進行詳細說明,然后將輸入類型“ hidden”設置為send數據到php頁面,以進行進一步說明。

ps。

if(isset($ _ GET ['go.x'])== true)
等於說
if(isset($ _ GET ['go.x']))

http://it2.php.net/isset

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM