使用PHP自动填写和提交HTML表单?可能吗?

时间:2011-11-24 06:46:55

标签: php database

我担心这是一个模糊的问题,可能会被低估,但我仍然会问。我想要实现的是使用PHP填写某些网站(没有API)的文本字段。例如(不是我想做的)填写facebook状态栏中的文本或填写网站的用户名密码字段。这可以实现吗?

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:1)

如果我正确地理解你,不,这通常是不可能的。 PHP通常用于服务器端。您所指的是(即:修改网站上的控件)发生在客户端,因此您可能会使用JavaScript等语言。但是,能够在不属于您的网页上使用JavaScript存在限制。出于您的目的,您可能需要创建一个完整的浏览器扩展......这是一个完全不同的动物。

答案 1 :(得分:1)

这可以通过curl POST

完成

示例:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/path/to/form");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);

$data = array(
    'username' => 'joe',
    'password' => 'blogsy'
);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
curl_close($ch);
?>

<强> CURLOPT_RETURNTRANSFER

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);行实际上并不是必需的,但这意味着返回的网页中的HTML会进入$output变量而不是回显到标准输出。

<强> CURLOPT_POST

curl_setopt($ch, CURLOPT_POST, true);行告诉CURL这是POST而不是默认的GET。

<强> CURLOPT_POSTFIELDS

$ data数组包含POST字段值,等效的HTML表单值可能类似于:

<input type='text' name='username' value='joe' />
<input type='password' name='password' value='blogsy' />

答案 2 :(得分:0)

如果你可以注入一个java脚本代码,那么你可以。或者只是从您想要的网站获取HTML代码,只需为所需字段添加值标记。