У меня есть сайт, на котором я продаю цифровые загрузки, и пытался какое-то время настроить экспресс-проверку PayPal. Я, наконец, интегрирую его, но есть одна вещь, которую я не могу понять.PHP - Относительные пути! Легко для опытных разработчиков, я должен подумать
Мой код говорит get_script_uri ('buy.php')); Это означает, что при обработке платежа пользователь будет перенаправлен на «buy.php».
PayPal_Digital_Goods_Configuration::return_url(get_script_uri('buy.php'));
Однако моя страница, которая включает в себя этот код (paypalbuy.php) находится в директории под названием «дл /». Когда платеж обрабатывается и пользователь перенаправляется на «buy.php», пользователь перенаправляется на «dl/buy.php» из-за пути.
Как это исправить? Как установить 'get_script_uri (' http://google.com '));' и пользователь перенаправляется на URL-адрес, а не на файл в пути.
EDIT: Вот моя 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;
}
Почему бы не использовать фактический путь? – hjpotter92
Как использовать фактический путь? извините, я noob. –
@HugoCornellier: используйте 'PayPal_Digital_Goods_Configuration :: return_url ('http://google.com/buy.php');' (замените 'google.com' своим доменом, конечно). –