我有这种情况。我正在为我的应用程序实施付款,网址就像http://example.com/payment?referenceId=123
。在此之前,我需要检查身份验证,如果用户未登录,则需要使用redirect_url
概念。我有redirect_url的这个网址:http://example.com/login?redirect_url=URL
由于我在源URL中也有查询参数,因此我无法将该URL用作redirect_url。我怎么能这样做?
答案 0 :(得分:1)
执行此任务的一种可能方法是在重定向到登录页面时将http://example.com/payment?referenceId=123存储在会话中,并在完成登录时检查会话是否具有重定向值,然后从会话重定向到该URL。
答案 1 :(得分:0)
将身份验证存储referenceId检查为会话变量。在您的身份验证页面中启动会话,并检查url-referenceId是否等于该特定会话的存储userId。
session_start();
$_SESSION['referenceId'] = 123;
if((url_ReferenceId)=$_SESSION['referenceId'])
{
//Check for authentication
}
答案 2 :(得分:0)
对于网址http://example.com/login?redirect_url=http://example.com/payment?referenceId=12 3
使用$redirect_url = $_GET['redirect_url'];
// $ redirect_url包含http://example.com/payment?referenceId=12 3
然后使用php的内置函数parse_url过滤掉' referenceId
'来自$redirect_url
<?php
$url = '//www.example.com/path?googleguy=googley';
var_dump(parse_url($url));
?>
array(3) {
["host"]=>
string(15) "www.example.com"
["path"]=>
string(5) "/path"
["query"]=>
string(17) "googleguy=googley"
}
检查更多信息http://php.net/manual/en/function.parse-url.php
此部分googleguy=googley
实际上会保存您所需的数据