cURL / Mailing Lists / curl-and-php / Single Mail

curl-and-php

Re: CURL and cookies

From: Kevin Carothers <kevindotcar_at_gmail.com>
Date: Fri, 26 May 2006 17:00:37 -0700

Hi Amaury

It doesn't look like you're sending the cookie-file on the second curl_exec
- As a start, I'd add those specifications on the 2nd exec;
[---]
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);

DISCAIMER:
I've never used curl lib (as I'm stuck with WIN32) but I use curl.exe a lot,
so this should get you a little closer.

Hope This Helps.

KC

On 5/26/06, Amaury Willemant <awillemant_at_yahoo.fr> wrote:
>
> Hi everyone,
>
> I am trying to log on a website using PHP and CURL.
>
> First of all, I copied the HTML <form> from the website and when I used
> it, it worked perfectly.
> So, in a second step, I took every vars (visible and hidden) from the web
> page and built a postfield string I use in CURL.
>
> I tested the two methods with a page that dumps $_POST and it is exactly
> the same result but when I test them with the website I want to access, the
> method using curl does not work.
>
> I think it is because I do not manage very well the session cookies but I
> am not sure.
>
> Here is my code with the two methods, sorry, some vars are in french ;)
>
> CURL ONE :
> ========
>
> <?
> //GET FORM INFORMATIONS
> $ch = curl_init();
> $adresse='https://intrapril.april.fr';
> curl_setopt($ch, CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
> curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
> curl_setopt ($ch, CURLOPT_URL,$adresse);
> curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
> $cookie='cookie.txt';
> curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
> curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
> curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
> curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
> $form=curl_exec ($ch);
>
> //GET ACTION ATTRIBUTE FROM THE FORM
> $regex="!action=\"(.*)\"!isU";
> $res=array();
> preg_match_all($regex,$form,$res);
> $action=$res[1][0];
>
> //GET __VIEWSTATE HIDDEN VARIABLE
> $regex="!name=\"__VIEWSTATE\" value=\"(.*)\"!isU";
> $res=array();
> preg_match_all($regex,$form,$res);
> $viewstate=$res[1][0];
>
>
> $adresse="
> https://intrapril.april.fr/IntraprilV2/UIL/Web/Partage/Cms/".$action<https://intrapril.april.fr/IntraprilV2/UIL/Web/Partage/Cms/%22.$action>
> ;
>
>
> $postfields="__EVENTTARGET=".
> "&__EVENTARGUMENT=".
> "&__VIEWSTATE=".urlencode($viewstate).
> "&Login1:noCorrespondant=".urlencode("<my_login>").
> "&Login1:MotDePasse=".urlencode("<my_password>").
> "&Login1:Connexion_x=10".
> "&Login1:Connexion_y=10";
>
> curl_setopt($ch, CURLOPT_URL,$adresse);
> curl_setopt($ch, CURLOPT_RETURNTRANSFER,0);
> curl_setopt($ch, CURLOPT_POST,1);
> curl_setopt($ch, CURLOPT_POSTFIELDS,$postfields);
>
> curl_exec ($ch);
>
> curl_close($ch);
>
>
> AND THE HTML ONE:
> ==============
> <form name="Login1:Form1" method="post" action="<? echo $adresse; ?>"
> id="Login1_Form1">
> <input type="hidden" name="__EVENTTARGET" value="" />
> <input type="hidden" name="__EVENTARGUMENT" value="" />
> <input type="hidden" name="__VIEWSTATE" value="<? echo $viewstate ;?>" />
> <input name="Login1:noCorrespondant" id="Login1_noCorrespondant"
> type="text" class="textbox" /><br>
> <input name="Login1:MotDePasse" id="Login1_MotDePasse" type="password"
> class="textbox" /><br>
> <input id="Checkbox" type="checkbox" value="checkbox" name="checkbox"
> class="checkbox">
>
>
> </form>
>
>
>
>
>
> Could you help me and explain how session cookies work in curl please ?
>
> Thank you in advance !
>
> Purplefrog
>
>
>
>
> _______________________________________________
> http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php
>
>
>

_______________________________________________
http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php
Received on 2006-05-27