CURLOPT_FOLLOWLOCATION not activated

im has some problems with curls and i don't know how to solve them.

The idea is to get the username and pw and publish it on an external web page.

Here is the code:

$ch = curl_init(); 
  curl_setopt( $ch, CURLOPT_URL, "https://sso.uc.cl/cas/login?service=https://portaluc.puc.cl/uPortal/Login"); // URL to post 
  curl_setopt ($ch, CURLOPT_POST, 1);
  curl_setopt ($ch, CURLOPT_POSTFIELDS,         "username=$usuario&password=$pw");
  curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
  $result = curl_exec( $ch ); // runs the post 
  curl_close($ch);
  echo "Reply Response: " . $result; // echo reply response 

Here is the error:

Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /home/th000862/public_html/encuesta/login2.php on line 10

After this error, the user will not enter an external web page.

+3
source share
2 answers

This error means that your PHP setting prevents you from tracking your location. There are several ways that you could solve the problem without installing additional libraries, as suggested by @mario.

  • If you own the server or have root access, you can modify the php.ini file to disable 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 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.
  }
+6

: https CURLOPT_SSL_VERIFYPEER false.

:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+3

All Articles