curl-and-php
Re: Change URL location on CURL requests?
Date: Tue, 16 Mar 2010 11:08:45 +0100
Hi Shan Shui,
I tested CURLOPT_REFERER with value https://domain1/page.html and
https://domain1/ but browser did not return thank you page.
original form is https://network.leadhouse.net/affiliate_signup.html
my form is https://www.leadhouse.net/horizonadv.php/affiliate-signup
my script is in attachment.
I hope that you could help me.
Thank you.
Alessandra.
On Mon, Mar 15, 2010 at 7:45 PM, Shanshui Liu <me_at_lx.sg> wrote:
> Hi Alessandra,
> Try setting the CURLOPT_REFERER option to the form URL. Some form handler
> check for this value believing that it would prevent form spoofing (and it
> clearly doesn't). If that doesn't work, then I guess you'll have to show us
> the forms in question so that we can help you further.
> With regards,
> Liu Shan Shui
> http://lx.sg/
> "Life would be much easier if I had the source code." - Anonymous
>
>
> On Mon, Mar 15, 2010 at 8:57 PM, Alessandra <alessandra.bilardi_at_gmail.com>
> wrote:
>>
>> Hi all,
>> I read more forum and tutorial about curl post and changing URL
>> location.. but I think that something escapes me..
>> I have got a form (https://domain1/page.html) that I would like:
>> * mask it with my form (https://domain2/page.html)
>> * post all fields into original form (https://domain1/page.html)
>> * return thank you page about original form
>> (https://domain1/page.html) when I submitted with my form
>> (https://domain2/page.html)
>>
>> https://domain1/page.html has got a form tag:
>> <form method="post" id='signup' onsubmit="return validate_form();">
>> function javascript returns true.
>> if I filled in all fields and I submitted it, browser returns thank
>> you page into same url page: https://domain1/page.html
>>
>> I create my form into https://domain2/page.html
>> that recall https://domain2/my.php that post fields by this code:
>>
>> [code]
>> ..
>> $url = "https://domain1/page.html";
>> $user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
>> $ch = curl_init();
>> curl_setopt($ch, CURLOPT_URL, $url);
>> curl_setopt($ch, CURLOPT_POST, count($postdata));
>> curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
>> curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
>> curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
>> $result = curl_exec($ch);
>> ..
>> [/code]
>>
>> if I filled in all fields about my form (https://domain2/page.html)
>> and I submitted it, browser returns original form page
>> (https://domain1/page.html) with all fields filled and not thank you
>> page.
>> I tested more curl lib options adding each option at a time:
>>
>> [code]
>> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
>> curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
>> curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
>> curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
>> curl_setopt($ch, CURLOPT_FAILONERROR, 0);
>> curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
>> [/code]
>>
>> I checked safe and basedir options, curl lib errors and url info:
>>
>> [code]
>> .. previous code..
>>
>> if(!ini_get('safe_mode') && !ini_get("open_basedir")) {
>> echo "n safe, n basedir: CURLOPT_FOLLOWLOCATION, true";
>> } elseif(!ini_get("open_basedir")) {
>> echo "y safe, n basedir";
>> } elseif(!ini_get('safe_mode')) {
>> echo "n safe, y basedir";
>> } else {
>> echo "y safe, y basedir";
>> }
>>
>> $error_no = curl_errno($ch);
>> $error_wd = curl_error($ch);
>> $url_info = curl_getinfo($ch);
>>
>> $result = curl_exec($ch);
>> curl_close($ch);
>> $strg = "";
>>
>> foreach ($url_info as $k => $v) {
>> $strg .= "$k = $v; ";
>> }
>>
>> if ($error_no == 0) {
>> $error = '<br/>File uploaded succesfully
>> ('.$error_wd.'['.$error_no.']): '.$strg.'.';
>> } else {
>> $error = '<br/>File upload error ('.$error_wd.'['.$error_no.']):
>> '.$strg.'.';
>> }
>>
>> echo $error;
>> [/code]
>>
>> And I obtainted that:
>> * php runs with safe_mode and open_basedir ON
>> * posting by curl lib has got error:
>> File uploaded succesfully ([0]): url = https://domain1/page.html;
>> content_type = text/html; http_code = 200; header_size = 393;
>> request_size = 175; filetime = -1; ssl_verify_result = 0;
>> redirect_count = 0; total_time = 1.60061; namelookup_time = 0.002403;
>> connect_time = 0.143216; pretransfer_time = 0.438166; size_upload =
>> 4552; size_download = 51836; speed_download = 32385; speed_upload =
>> 2843; download_content_length = 0; upload_content_length = 4552;
>> starttransfer_time = 0.589802; redirect_time = 0; .1
>>
>> I don't understand where/what I must to do because browser returns me
>> thank you page: https://domain1/page.html
>> can you help me about?
>>
>> Alessandra.
>> _______________________________________________
>> http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php
>
>
> _______________________________________________
> http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php
>
>
-- Alessandra Bilardi, Ph. D. ---- CRIBI, University of Padova, Italy Via Ugo Bassi, 58/B - 35121 Padova Tel +390498276165 Fax +390498276159 http://www.linkedin.com/in/bilardi ---- La semplicità è la più alta forma di perfezione (Leonardo Da Vinci) Keep simple, stupid (KISS, IT) ----
_______________________________________________
http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php
- application/octet-stream attachment: affiliate_signup.php