Home >Backend Development >PHP Tutorial >How to automatically submit forms in php (based on fsockopen and curl)_php skills

How to automatically submit forms in php (based on fsockopen and curl)_php skills

PHP中文网
PHP中文网Original
2016-05-16 09:00:031874browse

the example in this article describes how php can automatically submit forms based on fsockopen and curl. share it with everyone for your reference, the details are as follows:

both fsockopen and curl can do php automatic form submission

1. fsockopen method:

php code:

<?php
/*-----------------------------------------------------------
*功能:使用php socke 向指定页面提交数据
*作者:果冻  说明:post($url, $data)
*
*    $url   = 'http://www.xxx.com:8080/login.php';
*    $data[user] = 'hong';
*    $data[pass] = 'xowldo';
*    echo post($url, $data);
*-----------------------------------------------------------*/
function post($url, $data) {
  $url = parse_url($url);
   if (!$url) return "couldn't parse url";
   if (!isset($url['port'])) { $url['port'] = ""; }
   if (!isset($url['query'])) { $url['query'] = ""; }
  $encoded = "";
   while (list($k,$v) = each($data)) {
    $encoded .= ($encoded ? "&" : "");
    $encoded .= rawurlencode($k)."=".rawurlencode($v);
   }
  $fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
   if (!$fp) return "failed to open socket to $url[host]";
  fputs($fp, sprintf("post %s%s%s http/1.0n", $url['path'], $url['query'] ? "?" : "", $url['query']));
  fputs($fp, "host: $url[host]n");
  fputs($fp, "content-type: application/x-www-form-urlencodedn");
  fputs($fp, "content-length: " . strlen($encoded) . "n");
  fputs($fp, "connection: closenn");
  fputs($fp, "$encodedn");
  $line = fgets($fp,1024);
   if (!eregi("^http/1.. 200", $line)) return;
  $results = ""; $inheader = 1;
   while(!feof($fp)) {
    $line = fgets($fp,1024);
     if ($inheader && ($line == "n" || $line == "rn")) {
    $inheader = 0;
   }
   elseif (!$inheader) {
    $results .= $line;
   }
   }
  fclose($fp);
   return $results;
}
/*
$url = 'http://video.xxx.com:80/game_vm.php';
$data['gid'] = '1';
echo post($url, $data);
*/
?>

2. curl method :

php code:

<?php
  $url = 'http://localhost/curl/result.php';
  $params = "param=123¶m2=333"; //what will be posted
  $user_agent = "mozilla/5.0 (compatible; msie 5.01; windows nt 5.0)";
  $ch = curl_init();
  curl_setopt($ch, curlopt_post,1);
  curl_setopt($ch, curlopt_postfields,$params);
  curl_setopt($ch, curlopt_url,$url);
  curl_setopt($ch, curlopt_useragent, $user_agent);
  curl_setopt($ch, curlopt_returntransfer,1);
  $result=curl_exec ($ch); //execut
  curl_close ($ch);
  echo "results: <br>".$result;
?>

result.php (just for test)

<?php
print_r($_POST);
?>

the above is php automatic how to submit a form (based on fsockopen and curl)_php skills content, please pay attention to the php chinese website (www.php.cn) for more related content!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn