2013-07-08 57 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']; 

}