Re: Change URL location on CURL requests?

Shanshui Liu <[email protected]>
Newsgroups gmane.comp.web.curl.php
Message-ID <[email protected]>
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 <[email protected]>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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.