2013-07-08 90 views
0

我的PHP頁面可以從兩個不同的頁面接收相同的數據,第一個使用GET發送,第二個使用會話。我怎樣才能使這件事情工作?如何處理多個request_method?

//$var = empty; 

//$_GET['id'] = empty; 


//User come from page1.php 

if ($_SERVER['REQUEST_METHOD'] === 'GET') { 

$var = $_GET['data']; 

} 

else { 

//User come from page2.php 

$var = $_SESSION['data']; 

} 
+2

'GET'是請求頁面的「正常」方法;訪問者如何從'page2.php'到達你的頁面? – jeroen

+0

謝謝你讓我意識到我可以用GET做到這一點。 – user2495097

回答

1

試試這個:

if (array_key_exists('data', $_GET)) { 
    $var = $_GET['data']; 
} else { 
    $var = $_SESSION['data']; 
} 
+0

這不是正確的答案。 OP詢問請求來自兩頁.'page1.php'&'page2.php',所以你的方法只檢查'data'而不是頁面。 – samayo

+0

我明白這個問題,問如何使它使用任一方法的不同頁面。由於OP的if語句順序,我首選通過SESSION數據獲取數據。如果需要根據頁面鎖定方法,最好在單個頁面上使用特定的代碼而不是if語句。 –

0

如果你有兩頁,page1.phppage2.php和你想知道第一手它是網頁,什麼是?data=值......那麼這會做的伎倆。

<?php 

$data = (isset($_GET['data']) && !empty($_GET['data'])) ? $_GET['data'] : ''; 
if($_SERVER['SCRIPT_NAME'] === 'page1.php'){ 

    $var = $data; 

}else if($_SERVER['SCRIPT_NAME'] === 'page2.php'){ 

    $var = $_SESSION['data']; 

}