2012-03-18 36 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

相關問題