Home >Backend Development >PHP Tutorial >How to automatically submit forms in php (based on fsockopen and curl)_php skills
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!