curl-and-php
Re: Submitting form with strange __multiselect parameters
Date: Fri, 09 Aug 2013 13:53:46 +0530
Use "firebug" or "httpFox" browser plugins to get the complete POST data
set and HTTP request headers.
Compare them with the cURL request headers .
Try adding "Referer" header to the cURL request.
It seems that the request header does not contain "Cookie" ?? there
should be 2 cookies "JSESSIONID" and "BIGipServerpl-prod_iplanet_http_v4".
Try collecting cookies manually and adding to the header. First send the
request to
http://www.ura.gov.sg/realEstateIIWeb/resiRental/search.action and
collect the cookies using regular expressions.
Replace null with '' in POST data array. put 01 within quotations
('selectedPostalDistricts' => '01',).
Thank You,
Waruna Geekiyanage
M: +94 71 4168164
E: waruna.ns_at_gmail.com <mailto:warunans_at_gmail.com>
MSN: warunans_at_hotmail.com
GTalk: waruna.ns
ICQ: 225184383
Yahoo: warunans
Skype: warunans
On 8/8/2013 8:53 PM, Oscar Vidal wrote:
> Hi!
>
> Thanks to Scott, Waruna and Thomas for the answers.
>
> I tried each one of the suggestion but still getting same result.
>
> *@Scott*
>
> Your suggestion makes totally sense and I changed line to
>
> curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode($str_postdata));
>
> but still same result than before, see below the header returned
>
> POST /realEstateIIWeb/resiRental/submitSearch.action HTTP/1.1
> Host: www.ura.gov.sg <http://www.ura.gov.sg>
> Accept: */*
> Accept-Encoding: gzip
> Content-Type: application/x-www-form-urlencoded
> Content-Length: 380
>
> *@Waruna*
>
> I changed the String
>
> $str_postdata="submissionType=pd&from_Date_Prj=JUN-2013&to_Date_Prj=JUN-2013&__multiselect_projectNameList=&__multiselect_selectedProjects=&propertyType=ac&from_Date=MAY-2013&to_Date=JUN-2013&__multiselect_postalDistrictList=&selectedPostalDistricts=01&selectedPostalDistricts=02&selectedPostalDistricts=03&__multiselect_selectedPostalDistricts=";
>
> to a Array
>
> $arr_postdata = array (
> 'submissionType' => 'pd',
> 'from_Date_Prj' => 'JUN-2013',
> 'to_Date_Prj' => 'JUN-2013',
> '__multiselect_projectNameList' => null,
> '__multiselect_selectedProjects' => null,
> 'propertyType' => 'lp',
> 'from_Date' => 'MAR-2013',
> 'to_Date' => 'JUN-2013',
> '__multiselect_postalDistrictList' => null,
> 'selectedPostalDistricts' => 01,
> '__multiselect_selectedPostalDistricts' => null
>
> );
>
> Note that in the array I cant add more than one
> "selectedPostalDistricts", so I'm just using one district in the example.
> I removed the header 'Content-Type: application/x-www-form-urlencoded'.
> Cookies seems to be created and used by cURL.
>
> POST /realEstateIIWeb/resiRental/submitSearch.action HTTP/1.1
> Host: www.ura.gov.sg <http://www.ura.gov.sg>
> Accept: */*
> Accept-Encoding: gzip
> Content-Length: 1280
> Expect: 100-continue
> Content-Type: multipart/form-data;
> boundary=----------------------------ac09b91542ec
>
>
> *@Rob
>
> *
> Also I followed your advice**and I submitted the form to my local
> computer, so I can see all the POST variables. But It seems like the
> java script is not changing the form or at least the POST variables. I
> used the a print_r($_POST) and this is what I can see:
>
> Array ( [submissionType] => pd [from_Date_Prj] => JUN-2013
> [to_Date_Prj] => JUN-2013 [projectNameList] =>
> [__multiselect_projectNameList] => [__multiselect_selectedProjects] =>
> [propertyType] => lp [from_Date] => MAR-2013 [to_Date] => JUN-2013
> [__multiselect_postalDistrictList] => [selectedPostalDistricts] => 03
> [__multiselect_selectedPostalDistricts] => )
>
>
> ----
>
> I'm not sure what I can try more. Currently I'm thinking that it can
> be related with the cookies that google analytics is creating in the
> website, can it make sense?
>
> Thanks!
> Oscar
>
>
> *
>
> *
>
>
>
>
> On 8 August 2013 10:48, Scott Battersby <scott_at_stopthatsnoring.com.au
> <mailto:scott_at_stopthatsnoring.com.au>> wrote:
>
> you have to urlencode POST dataif you use the option "'Content-Type:
> application/x-www-form-urlencoded"
>
> the "-urlencoded" there is a big clue :)
>
> so change > curl_setopt($ch, CURLOPT_POSTFIELDS, $str_postdata);
>
> to
>
> > curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode($str_postdata));
>
> Cheers
>
> Scott
>
>
> On 7 August 2013 20:06, Oscar Vidal <oscarblo_at_gmail.com
> <mailto:oscarblo_at_gmail.com>> wrote:
> > Hi Waruna!
> >
> > thanks for you answer.
> >
> > Here is the code that I'm using currently:
> >
> > --------------------------------------------------
> > $cookieFile="/tmp/cookie";
> >
> > $ch = curl_init();
> > curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);
> > curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
> > curl_setopt($ch, CURLOPT_ENCODING, "gzip");
> > curl_setopt($ch, CURLOPT_URL,
> "http://www.some.url/submitSearch.action");
> > curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:
> > application/x-www-form-urlencoded'));
> >
> > // The string is exactly the same that the one generated by the
> browser
> >
> $str_postdata="submissionType=pd&from_Date_Prj=JUN-2013&to_Date_Prj=JUN-2013&__multiselect_projectNameList=&__multiselect_selectedProjects=&propertyType=ac&from_Date=MAY-2013&to_Date=JUN-2013&__multiselect_postalDistrictList=&selectedPostalDistricts=01&selectedPostalDistricts=02&selectedPostalDistricts=03&__multiselect_selectedPostalDistricts=";
> >
> > curl_setopt($ch, CURLOPT_POST, 1);
> > curl_setopt($ch, CURLOPT_POSTFIELDS, $str_postdata);
> > curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
> > curl_setopt($ch, CURLOPT_VERBOSE, 1);
> >
> > curl_exec($ch);
> >
> > $info = curl_getinfo($ch, CURLINFO_HEADER_OUT);
> >
> > echo $info;
> >
> > curl_close($ch);
> > --------------------------------------------------
> >
> > The content of $info is
> >
> >
> > POST /submitSearch.action HTTP/1.1
> > Host: www.ura.gov.sg <http://www.ura.gov.sg>
> > Accept: */*
> > Accept-Encoding: gzip
> > Cookie: BIGipServerpl-prod_iplanet_http_v4=214476992.20480.0000;
> >
> JSESSIONID=vjyWSCpX2G9V1tKpTTHxcZh0t9nTyyqtjC291JrtXJC1vk70m0xm!-1705297486
> > Content-Type: application/x-www-form-urlencoded
> > Content-Length: 330
> >
> >
> > Hopefully it can give some clue about why the post to the form
> is not
> > working.
> > If I can add some other valuable info, please just ask me :)
> >
> > Thanks in advance!!
> > Oscar
> >
> >
> >
> > On 7 August 2013 17:44, Waruna Geekiyanage <waruna.ns_at_gmail.com
> <mailto:waruna.ns_at_gmail.com>> wrote:
> >>
> >> submit your PHP/cURL code, so that we can give a clear answer.
> >>
> >> Use following settings to submit POST data
> >> curl_setopt ($ch, CURLOPT_POST, 1);
> >> curl_setopt ($ch, CURLOPT_POSTFIELDS, $arr_postdata);
> >>
> >> $arr_postdata - field name as key and field data as value
> >>
> >> use following setting for debugging
> >>
> >> curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
> >> $info = curl_getinfo($ch, CURLINFO_HEADER_OUT);
> >>
> >> $info will give the request headers.
> >>
> >> Thank You,
> >> Waruna Geekiyanage
> >>
> >> M: +94 71 4168164 <tel:%2B94%2071%204168164>
> >> E: waruna.ns_at_gmail.com <mailto:waruna.ns_at_gmail.com>
> >> MSN: warunans_at_hotmail.com <mailto:warunans_at_hotmail.com>
> >> GTalk: waruna.ns
> >> ICQ: 225184383
> >> Yahoo: warunans
> >> Skype: warunans
> >>
> >> On 8/7/2013 2:32 PM, Oscar Vidal wrote:
> >>
> >> Hi!
> >>
> >> I'm trying to submit a (java servlet) form using CURL in PHP,
> but it seems
> >> like there is a problem with the parameters. I cant really
> understand why
> >> its happening since I'm testing the CURL with a identical
> string parameters
> >> that is being used by the browser.
> >>
> >> After some research in diverse forums I wasn't able to find a
> solution to
> >> my particular problem.
> >>
> >> this is the POSTFIELDS string generated by the browser (and
> working):
> >>
> >>
> >>
> submissionType=pd&__multiselect_PostCodeList=&selectedPostCode=01&selectedPostCode=02&selectedPostCode=03&__multiselect_selectedPostCodes=
> >>
> >> and I'm using and identical (for testing) string in the PHP
> script but it
> >> im getting a HTML file as a answers telling "Missing parameters
> in search
> >> query".
> >>
> >> I believe that the form
> >>
> >> __multiselect_PostCodeList=
> >> &selectedPostCode=01
> >> &selectedPostCode=02
> >> &selectedPostCode=03
> >> &__multiselect_selectedPostCodes=
> >>
> >> is quite wired (never see before this) and I'm wondering that
> it can be
> >> the reason of why the post is not working from CURL.
> >>
> >> The form seems to be successfully submitted since I'm getting
> this header
> >>
> >> HTTP/1.1 200 OK
> >> Date: Wed, 07 Aug 2013 08:02:56 GMT
> >> Content-length: 1791
> >> Content-type: text/html;charset=UTF-8
> >> X-Powered-By: Servlet/2.4 JSP/2.0
> >> Vary: Accept-Encoding
> >> Content-Encoding: gzip
> >> Connection: Keep-Alive
> >>
> >> Note: I tried submitting the same form from Lynx and I'm also
> getting the
> >> same result ("Missing parameters in search query"). So it seems
> like its
> >> only working with browsers like Mozilla or Chrome.
> >>
> >> Please some help will be really appreciated, I don't have any
> more ideas
> >> at this point.
> >>
> >> Thanks! Oscar
> >>
> >>
> >>
> >> _______________________________________________
> >> http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php
> >>
> >>
> >
> >
> > _______________________________________________
> > http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php
> >
>
> _______________________________________________
> http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php
>
>
>
>
> _______________________________________________
> http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php
_______________________________________________
http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php
Received on 2013-08-09