2012-03-18 46 views
0

我有一个网站,我出售数字下载,并一直尝试设置PayPal快速结账一段时间。我终于把它整合起来了,但有一件事我不明白。PHP - 相对路径!易于经验丰富的开发人员,我应该认为

我的代码说get_script_uri('buy.php')); 这意味着当处理付款时,用户将被重定向到“buy.php”。

PayPal_Digital_Goods_Configuration::return_url(get_script_uri('buy.php')); 

但是,包含此代码的页面(paypalbuy.php)位于名为“dl /”的目录中。当处理付款时,用户被重定向到'buy.php',由于路径,用户被重定向到'dl/buy.php'。

我该如何解决这个问题?我该如何设置'get_script_uri('http://google.com'));'并让用户重定向到一个URL,而不是路径中的文件。

编辑:这里是我的get_script_uri功能:

function get_script_uri($script = 'index.php'){ 
// IIS Fix 
if(empty($_SERVER['REQUEST_URI'])) 
    $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME']; 

// Strip off query string 
$url = preg_replace('/\?.*$/', '', $_SERVER['REQUEST_URI']); 
//$url = 'http://'.$_SERVER['HTTP_HOST'].'/'.ltrim(dirname($url), '/').'/'; 
$url = 'http://'.$_SERVER['HTTP_HOST'].implode('/', (explode('/', $_SERVER['REQUEST_URI'], -1))) . '/'; 

return $url . $script; 
} 
+0

为什么不使用实际路径? – hjpotter92 2012-03-18 16:20:52

+0

如何使用实际路径?对不起,我是一个noob。 – 2012-03-18 16:46:31

+0

@HugoCornellier:使用PayPal_Digital_Goods_Configuration :: return_url('http://google.com/buy.php');'(当然用您的域替换google.com')。 – 2012-03-19 09:11:42

回答

0

不看get_script_uri()源代码,我不能肯定,但是从你描述的目录结构,我推断,通过改变get_script_uri('buy.php')get_script_uri('../buy.php')应该给你找到了正确的网址:../表示父目录

+0

' 功能get_script_uri($脚本= '的index.php'){ \t // IIS修复 \t如果(空($ _SERVER [ 'REQUEST_URI'])) \t \t $ _SERVER [ 'REQUEST_URI'] = $ _SERVER ['SCRIPT_NAME']; \t //删除查询字符串 \t $ URL = preg_replace函数( '/\?.*$/', '',$ _SERVER [ 'REQUEST_URI']); \t // $ url = 'http://'.$_SERVER ['HTTP_HOST']。'/'。ltrim(dirname($ url),'/').'/'; ('/',$ _SERVER ['REQUEST_URI'],-1)))。$ url ='http://'.$_SERVER ['HTTP_HOST'] .implode('/',(explode('/',$ _SERVER ['REQUEST_URI'],-1)))。 '/'; \t return $ url。 $脚本; } 它就是这样。我试图重定向到一个URL。 – 2012-03-18 16:35:39

+0

@HugoCornellier:这是几乎不可读的花花公子,在你的问题中格式正确的帖子。 – 2012-03-18 16:39:48

+0

@HoCoCellier:你有没有试过我建议的?它应该工作。 – 2012-03-19 09:10:07

相关问题