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

curl-and-php

Re: Change URL location on CURL requests?

From: Alessandra <alessandra.bilardi_at_gmail.com>
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

Received on 2010-03-16