我正在测试一些东西。仅当我传递 GET 值时,我想将我的网站 ( http://mywebsite.com ) 重定向到登录页面 ( http://landingpage.com )。例如:id=23。因此,当它存在时,页面会重定向。
我的问题是是否有任何脚本可以捕获我被重定向的列表?我想要完整的链接,例如:http ://mywebsite.com/index.php?id=23
有没有可能捕捉到它?
还有没有可能对 POST 做同样的事情并在登陆页面上捕获该 POST 值?
我正在测试一些东西。仅当我传递 GET 值时,我想将我的网站 ( http://mywebsite.com ) 重定向到登录页面 ( http://landingpage.com )。例如:id=23。因此,当它存在时,页面会重定向。
我的问题是是否有任何脚本可以捕获我被重定向的列表?我想要完整的链接,例如:http ://mywebsite.com/index.php?id=23
有没有可能捕捉到它?
还有没有可能对 POST 做同样的事情并在登陆页面上捕获该 POST 值?
忘记:
您可以简单地附加$_SERVER['QUERY_STRING']
到登录页面:
<?php
$get = ($_SERVER['QUERY_STRING']) ? "?".$_SERVER['QUERY_STRING']: "";
$url = 'http://landingpage.com'.$get;
header("Location: $url");
?>
对于 POST:使用 CURL
if($_POST){
$ch = curl_init();
$curlConfig = array(
CURLOPT_URL => "http://landingpage.com",
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $_POST,
);
curl_setopt_array($ch, $curlConfig)
$result = curl_exec($ch);
curl_close($ch);
}
为什么不将数据存储在会话变量中?您所要做的就是在重定向页面上再次启动会话,并在那里检索会话变量。
教程如果你还没有意识到它:http ://www.tizag.com/phpT/phpsessions.php
例如,在 mywebsite.com 上:
session_start();
if (isset($_REQUEST['id'])) {
$_SESSION['id'] = $_REQUEST['id'];
$_SESSION['url'] = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'];
}
在landingpage.com 上:
session_start();
$url = $_SESSION['url'] . '?id=' . $_SESSION['id'];
echo $url;
虽然很确定如果页面存储在两个不同的服务器上,这将不起作用,所以我可能会误解这个问题。如果它在服务器之间,您可以改用 cookie。