curl-and-php
Re: Submitting form with strange __multiselect parameters
Date: Thu, 08 Aug 2013 14:02:00 +0530
##
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: 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/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 <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:warunans_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
Received on 2013-08-08