2015-10-14 2 views
-1

Ниже приводится вызов к URL с помощью CURL:Почему функция заголовка не работает после вызова CURL?

<?php 
    ini_set('display_startup_errors',1); 
    ini_set('display_errors',1); 
    error_reporting(-1); 

    $link = $_GET['link']; 
    $url = "http://www.complexknot.com/user/verify/link_".$link."/"; 


    // create a new cURL resource 
    $ch = curl_init(); 

    // set URL and other appropriate options 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 

    // grab URL and pass it to the browser 
    curl_exec($ch); 

    // close cURL resource, and free up system resources 
    curl_close($ch); 
?> 

Переменная $url содержит один URL, который я ударяя с помощью CURL.

Логика, записанная в файле (присутствует в переменной $url), работает абсолютно нормально.

После выполнения кода я хочу, чтобы элемент управления перенаправлялся на один URL-адрес. Для этого я написал следующий код:

header('Location: http://www.complexknot.com/login.php'); 
exit; 

Следующий код не работает. URL-адрес http://www.complexknot.com/login.php не открывается и появляется пустая белая страница. Это проблема, с которой я сталкиваюсь.

Если я не использую CURL и не ударяю URL-адрес, то есть URL-адрес, содержащийся в $url, он перенаправляется на URL-адрес http://www.complexknot.com/login.php, что означает, что функция заголовка отлично работает, когда я нажимаю URL-адрес в браузере.

Почему он не работает, когда я вызываю его из CURL?

Пожалуйста, помогите мне.

Заранее спасибо.

ответ

0

Это происходит потому, что CURL выводит данные. Вы должны использовать curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);, чтобы CURL возвращал данные, а не выводил их.

<?php 
ini_set('display_startup_errors', 0); 
ini_set('display_errors', 0); 
error_reporting(0); 

$link = $_GET['link']; 
$url = "http://www.complexknot.com/user/verify/link_$link/"; 

// create a new cURL resource 
$ch = curl_init(); 

// set URL and other appropriate options 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

// grab URL and pass it to the browser 
curl_exec($ch); 

// close cURL resource, and free up system resources 
curl_close($ch); 

header('Location: http://www.complexknot.com/login.php'); 
+0

Спасибо за ваш ответ. Не могли бы вы рассказать мне, где следует добавить эту строку или лучше, пожалуйста, разместите мой полный код с новой строкой, добавленной в качестве ответа, чтобы я мог принять ваш ответ? – PHPLover

+0

Я только что обновил свой ответ. –

+0

Извините, но проблема остается. – PHPLover

0

Вы можете использовать

<?php echo "<script>window.location.href = 'http://www.complexknot.com/login.php';</script>";die; ?>

Смежные вопросы