Re: CURL redirect not working even with CURLOPT_FOLLOWLOCATION set to true



On Jul 25, 6:10 am, Jerry Stuckle <jstuck...@xxxxxxxxxxxxx> wrote:
Sarah wrote:
I was wondering if someone might be able to help me with this issue.
I have a feeling this has something to do with my host's server
settings as I used to be able to get CURL to follow redirects by
setting CURLOPT_FOLLOWLOCATION set to true. I had a problem with my
host's updating something in the past that gave me the error
"CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an
open_basedir is set". My host worked on the issue and the error went
away, but I still can't seem to follow redirects, but I don't receive
the error. When I turn on the headers it show the location redirect,
but it won't follow it. Any ideas or is this an issue again with my
host? One code example of this issue is below. I have been able to
manually redirect to a point, but it would be a lot easier if the CURL
option worked. Thanks for any help you can provide.

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U;
Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
curl_setopt($ch, CURLOPT_URL, "http://www.flickr.com/signin/";);
curl_setopt($ch, CURLOPT_REFERER, "http://www.flickr.com/";);
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type:
application/x-www-form-urlencoded"));
//curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_exec ($ch);

curl_close($ch);
?>

Did the error go away, or did they just hide it?

Look at phpinfo(). Is either safe_mode or open_basedir set?

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstuck...@xxxxxxxxxxxxx
==================

When I did phpinfo() is says safe mode is off, but there after
open_basedir is looks like it lists a path. When I mentioned to my
host that I thought that having the open_basedir set was the problem
they said replied with "I have again checked your curl redirect issue
and found that there is problem to the curl redirect code. You need
contact to your programmer, he will assist you in a better war
regarding this issue."

The code I used to show them that CURL redirects were not working is:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U;
Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
curl_setopt($ch, CURLOPT_URL, "http://www.flickr.com/signin/";);
curl_setopt($ch, CURLOPT_REFERER, "http://www.flickr.com/";);
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-
Type:application/x-www-form-urlencoded"));
//curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_exec ($ch);

curl_close($ch);

?>


They told me that they created a redirect page and it worked fine.
There code is:
<?php
// create a new CURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.flickr.com/";);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

echo "<pre>";
print_r(curl_getinfo($ch,CURLINFO_EFFECTIVE_URL));
echo "</pre>";

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

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


Problem with there code that I can tell is that they used the wrong
URL. http://www.flickr.com does not redirect it is http://www.flickr.com/signin/
that redirects. If they had used the correct URL shouldn't
CURINFO_EFFECTIVE_URL produce the new redirection URL which is
https://login.yahoo.com/config/login?.src=flickr&.pc=5134&.scrumb=0&.pd=c%3DE0.GahOp2e4MjkX.5l2HgAoLkpmyPvccpVM-&.intl=us&.done=https%3A%2F%2Flogin.yahoo.com%2Fconfig%2Fvalidate%3F.src%3Dflickr%26.pc%3D5134%26.scrumb%3D0%26.pd%3Dc%253DE0.GahOp2e4MjkX.5l2HgAoLkpmyPvccpVM-%26.intl%3Dus%26.done%3Dhttp%253A%252F%252Fwww.flickr.com%252Fsignin%252Fyahoo%252F
and not http://www.flickr.com/signin?

If I did something wrong in my code to not properly form it to allow
redirects I would be happy to take the blame, but as far as I can see
I didn't and the only think I can think that would be causing this is
that they have the open_basedir set to a path instead of it being null
like it used to be.

Any help or advice to make sure I am not losing my mind would be
greatly appreciated.
.



Relevant Pages

  • Re: CURL redirect not working even with CURLOPT_FOLLOWLOCATION set to true
    ... settings as I used to be able to get CURL to follow redirects by ... away, but I still can't seem to follow redirects, but I don't receive ... but it would be a lot easier if the CURL ... // close CURL resource, ...
    (comp.lang.php)
  • CURL redirect not working even with CURLOPT_FOLLOWLOCATION set to true
    ... I have a feeling this has something to do with my host's server ... settings as I used to be able to get CURL to follow redirects by ... away, but I still can't seem to follow redirects, but I don't receive ... but it would be a lot easier if the CURL ...
    (comp.lang.php)
  • Re: CURL redirect not working even with CURLOPT_FOLLOWLOCATION set to true
    ... I have a feeling this has something to do with my host's server ... settings as I used to be able to get CURL to follow redirects by ... away, but I still can't seem to follow redirects, but I don't receive ... but it would be a lot easier if the CURL ...
    (comp.lang.php)
  • Re: [PHP] Help with CURL please
    ... I'm trying to access this URL using CURL and grab ... Now the problem is that in order to access that site, a Cookie must be ... redirects you to http://enterprisedirectory.ucr.edu, sets the cookie ... http://enterprisedirectory.ucr.edu (thus leaving my script) and then ...
    (php.general)
  • Re: CURL ignores $_SESSION???
    ... It seems, however, that CURL just ignores this statement and completely breaches my security. ... It seems that CURL ignores the redirect header. ... I had to put an exit after that statement. ... If you open pages with cURL, and you want to obey redirects from the header, use: ...
    (comp.lang.php)