2012-09-06 24 views
0

可以使用PHP超全局$ _GET並按照預期的方式在表單標記外工作嗎?例如,我可以在表單標籤外部執行$ _GET('select box id')並使其按預期工作嗎?

<?php 
    ---Placeholder for DB login info--- 

    switch($_GET['select box id']) 
    { 
     case "text shown for second option of select box": 
     $query = mysql_query("placeholder for actual query"); 
     $row = mysql_fetch_row($query); 
     $textboxValue = $row[0]; 
     break; 
    }  
?> 
+3

你有沒有試過看? – andrewsi

+2

偏離主題:強烈建議停止使用過時的mysql_xx()函數。您應該切換到'mysqli_xx()'選項,或者改爲使用PDO庫。 – SDC

+0

是的。我有點傷了我的問題。我想問的是,除了收集表單數據的目的外,還可以使用$ _GET變量嗎? – programm3r

回答

4

就可以將PHP超全局$_GET使用和工作按預期表單標籤之外?

是的。 HTML代碼中的PHP代碼的位置是完全無關緊要的,除了在確定輸出將出現在文檔中的位置之外。

$_GET['select box id']

表單控件使用他們的名字提交鍵,而不是IDS。

mysql_query

閱讀the documentation page for that function大紅色警告框。

+0

我對我的問題有點不滿。我想問的是,除了收集表單數據的目的外,還可以使用$ _GET變量嗎?我假設你的意思是參數$ _GET不應該是一個ID? – programm3r

+0

通過處理查詢字符串填充'$ _GET'。該查詢字符串可以使用表單或鏈接進行填充。 '$ _GET'不應該用於其他任何事情。 – Quentin

+0

謝謝。你能提供一個例子來說明如何使用鏈接填充查詢字符串嗎? – programm3r

0

超全球意味着可隨時隨地使用。

1

如果這是登錄信息,你不應該使用get請求 - 你應該使用post。

但無論如何,是的,它應該工作。只要數據與查詢一起發送,它就可以工作。

也就是說,您可能還想對一些基本的安全方面進行一些研究,例如驗證和清理輸入。否則,你可能會打開自己的一些相當骯髒的攻擊。

我會推薦O'Reilly出版社的Essential PHP Security這本書。我還會研究如何使用MySql PDO來進行數據庫查詢,因爲它比單純使用mysql_query更加可靠和安全。

+0

我把我的問題扔了一下。我想問的是,除了收集表單數據的目的外,還可以使用$ _GET變量嗎?謝謝,我將研究使用MySQL PDO。 – programm3r