Re: Submitting form with strange __multiselect parameters

Waruna Geekiyanage <[email protected]> Thu, 08 Aug 2013 14:02:00 +0530
Newsgroups gmane.comp.web.curl.php
Organization Waruna Geekiyanage
Message-ID <[email protected]>
##
Try changing $str_postdata to an array where field name as key and field 
data as value.
ie.
$arr_postdata["submissionType"] = "pd";
$arr_postdata["from_Date_Prj"] = "JUN-2013";
.....
.....
etc...

And remove header 'Content-Type: application/x-www-form-urlencoded'.
##
Compare the cURL request headers with browser request headers.
##
Make sure the /tmp/cookie contains the cookies.

Thank You,
Waruna Geekiyanage

M: +94 71 4168164
E: [email protected] <mailto:[email protected]>
MSN: [email protected]
GTalk: waruna.ns
ICQ: 225184383
Yahoo: warunans
Skype: warunans

On 8/7/2013 4:06 PM, Oscar Vidal 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 <[email protected] 
> <mailto:[email protected]>> 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: [email protected] <mailto:[email protected]>
>     MSN: [email protected] <mailto:[email protected]>
>     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