Re: cURL - Error 400

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 20, 2009 at 9:35 PM, haliphax <haliphax@xxxxxxxxx> wrote:

> On Fri, Apr 17, 2009 at 7:58 AM, David <quick.webmaster@xxxxxxxxx> wrote:
> > On Fri, Apr 17, 2009 at 8:55 PM, Andrew Ballard <aballard@xxxxxxxxx>
> wrote:
> >>
> >> On Fri, Apr 17, 2009 at 12:41 AM, David <quick.webmaster@xxxxxxxxx>
> wrote:
> >> > On Thu, Apr 16, 2009 at 11:48 PM, haliphax <haliphax@xxxxxxxxx>
> wrote:
> >> >
> >> >> On Wed, Apr 15, 2009 at 9:17 PM, David <quick.webmaster@xxxxxxxxx>
> >> >> wrote:
> >> >> > Except I also need to POST data to the server to login. After I've
> >> >> > logged
> >> >> > in, I then need to use cookies to maintain a session.
> >> >> >
> >> >> > Doing that via file_get_contents() just isn't possible.
> >> >> >
> >> >> >
> >> >> > Thanks
> >> >> >
> >> >> > On Thu, Apr 16, 2009 at 2:30 AM, haliphax <haliphax@xxxxxxxxx>
> wrote:
> >> >> >>
> >> >> >> On Wed, Apr 15, 2009 at 10:36 AM, David <
> quick.webmaster@xxxxxxxxx>
> >> >> wrote:
> >> >> >> > I was wondering if anyone could please help me with this cURL
> >> >> >> > script
> >> >> >> > since I
> >> >> >> > keep getting error 400 from the web server:
> >> >> >> >
> >> >> >> > http://pastebin.ca/1392840
> >> >> >> >
> >> >> >> > It worked until around a month ago which is when they presumably
> >> >> >> > made
> >> >> >> > changes to the site. Except I can't figure out what
> configuration
> >> >> option
> >> >> >> > in
> >> >> >> > the cURL PHP script needs to be changed. I can visit the site
> >> >> perfectly
> >> >> >> > in
> >> >> >> > Lynx, Firefox and IE.
> >> >> >>
> >> >> >> Are you just trying to get the contents of the page, or is there
> >> >> >> something special you're doing? If it's just the contents you're
> >> >> >> after, try file_get_contents() if allow_url_fopen is set to TRUE
> for
> >> >> >> your PHP installation.
> >> >> >>
> >> >> >> http://php.net/file_get_contents
> >> >> >> http://php.net/allow_url_fopen
> >> >>
> >> >> David, please refrain from top-posting.
> >> >>
> >> >> As for cURL login/session handling... I have an automated script that
> >> >> connects to a phpBB bulletin board, and here are the settings that
> >> >> have worked for me:
> >> >>
> >> >> curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
> >> >> curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
> >> >> curl_setopt($ch, CURLOPT_COOKIESESSION, true);
> >> >> curl_setopt($ch, CURLOPT_HEADER, false);
> >> >> curl_setopt($ch, CURLOPT_COOKIEFILE, "{$homedir}cookiefile");
> >> >> curl_setopt($ch, CURLOPT_COOKIEJAR, "{$homedir}cookiefile");
> >> >> curl_setopt($ch, CURLOPT_COOKIE, session_name() . '=' .
> session_id());
> >> >>
> >> >> I would think CURLOPT_FOLLOWLOCATION and the CURLOPT_COOKIE* options
> >> >> are most important for resolving your issue.
> >> >>
> >> >> HTH,
> >> >>
> >> >>
> >> >> --
> >> >> // Todd
> >> >>
> >> >
> >>
> >> > Hi,
> >> >
> >> > Sorry, that didn't work. The website is still returning error 400 with
> >> > CURLOPT_COOKIESESSION and CURLOPT_COOKIE enabled.
> >> >
> >> > I did some experimentation in Firefox by blocking and deleting all
> >> > cookies
> >> > from the site. When I then visited the site, I was able to reach the
> >> > logon
> >> > page without returning error 400 so I doubt it's cookies that is the
> >> > problem.
> >> >
> >> > I also tried changing the HTTP headers to:
> >> >
> >> > Accept:
> text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
> >> > Connection: Keep-Alive
> >> > Content-Type: text/html; charset=UTF-8
> >> >
> >> > Which didn't work either.
> >> >
> >> >
> >> >
> >> >
> >> > Thanks
> >> >
> >>
> >> Does the site require a valid HTTP_REFERER? I haven't seen
> >> CURLOPT_REFERER in any of your examples. (If I missed it somewhere,
> >> just ignore the noise.)
>
> Have you set your CURLOPT_COOKIEFILE properly? Also--you may need to
> unlink() it before you log-in using your cURL script to make sure that
> any invalid cookie values (i.e., expired session ID) are cleared out.
>
> unlink("{$homedir}cookiefile");
> curl_setopt($ch, CURLOPT_COOKIESESSION, true);
> curl_setopt($ch, CURLOPT_COOKIEFILE, "{$homedir}cookiefile");
> curl_setopt($ch, CURLOPT_COOKIEJAR, "{$homedir}cookiefile");
> curl_setopt($ch, CURLOPT_COOKIE, session_name() . '=' . session_id());
> ...
>
> (where $homedir is "/home/haliphax/" or some such value.)
>
> HTH,
>
>
> --
> // Todd
>

Hi,

The cookie file is currently empty but when I delete it, a new one is
created once the script is ran.



Thanks

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux