Эта ошибка означает, что ваша конфигурация PHP запрещает вам следовать местоположению.Есть несколько способов обойти эту проблему, не устанавливая дополнительные библиотеки, как предлагает @ mario.
- Если у вас есть сервер или у вас есть права root, вы можете изменить файл php.ini, чтобы отключить его."safe_mode".
- Вы также можете создать файл .htaccess в корне вашего документа с
php_value safe_mode off
в нем. - Вы можете добавить
ini_set('safe_mode', false);
в ваш файл PHP.
Если ничего из вышеперечисленного не работает, вы также можете сделать что-то вроде этого:
$ch = curl_init('https://sso.uc.cl/cas/login?service=https://portaluc.puc.cl/uPortal/Login');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'username=' . urlencode($usuario) . '&password=' . urlencode($pw));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
$result = curl_exec($ch);
curl_close($ch);
// Look to see if there's a location header.
if ( ! empty($result) )
if ( preg_match('/Location: (.+)/i', $result, $matches) )
{
// $matches[1] will contain the URL.
// Perform another cURL request here to retrieve the content.
}