2010-03-17 103 views
-2

UPDATE:簡單的PHP GET問題

所有下文給出的方法不

工作:

mysite.com?username=me &行動= editpost

但僅限於:

mysite.com?action=editpo ST


我知道如何檢測一個特定的GET方法是在URL:

$username = $_GET['username']; 

if ($username) { 
    // whatever 
} 

但我怎麼能發現這樣的事情:

http://www.mysite.com?username=me&action=editpost 

我如何檢測上面的「&操作」?

+1

呃...'$ _GET [ '行動']'? (我不想居高臨下;我自己幾乎不知道PHP。) – 2010-03-17 22:18:19

+0

你的意思是說「detect」?在你的URL示例中,你只需在'$ _GET'中有兩個參數,並且可以隨時檢查它們兩個... – Laimoncijus 2010-03-17 22:19:34

+0

這是爲什麼被拒絕? TMTOWTDI。我們可以討論哪一個最好。 – middus 2010-03-17 22:23:54

回答

2
$action = $_GET['action']; 

if ($action) { 
    // whatever 
} 

if(array_key_exists('action', $_GET)) { 

} 

順便說一下該方法被稱爲GET。你的意思是參數。

+0

秒......保姆。但你是菲利克斯,所以沒關係。 ;) – middus 2010-03-17 22:22:04

+0

@middus:啊,我記得。問候:-D – 2010-03-17 22:25:59

1

所有的GET參數都可以用同樣的方式訪問。

$username = $_GET['username']; 
$action = $_GET['action']; 

if ($username) { 
    // whatever 
} 

if ($action == 'editpost') { 
    // whatever 
} 
0
array_key_exists('action', $_GET) 
0
if (array_key_exists('action', $_GET) && $action = $_GET['action']) { 
// action exists 
} 

但是,如果一個空字符串(或任何evaluates to boolean false)是一個有效的值,就用這個來代替:

if (isset($_GET['action'])) { 
$action= $_GET['action']; 
// Do stuff with $action 
} 

使用$_GET['action']時的動作沒有被設置將根據錯誤報告級別生成通知。

0

你可以做到以下幾點:

if(array_key_exists('action', $_GET)){ // returns a boolean 
    // do something 
} 
0

以同樣的方式 - $ _GET是一個數組

$action = $_GET['action']; 

嘗試print_r($_GET),看看有什麼在它

0

參數中的URL是從左到右分配給$ _GET數組。

如果您有類似

?username=me&action=editpost&somekey=somevalue&action=&someotherkey=someothervalue 

然後第一「editpost」將被指定爲行動,但那麼這將是內容替換爲「」,因此

$_GET['action'] = ''; (instead of 'editpost') 
0

方法一樣用戶名:

$action = $_GET['action'];