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

PHP中文网
Release: 2016-05-16 09:00:03
Original
1787 people have browsed it

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);
*/
?>
Copy after login

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;
?>
Copy after login

result.php (just for test)

<?php
print_r($_POST);
?>
Copy after login

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!


Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template