0

我有一个 PHP 页面 (index.php),在使用表单登录后,我可以在另一个表单中发送 SMS。通过 WWW::Mechanize 我能够登录(如果我打印响应,它会正确显示发送 SMS 的第二个表单)但我无法提交另一个表单,如果我打印响应,我会得到提交 SMS 页面短信结果页面。这是一个代码片段,我错过了什么吗?

use WWW::Mechanize;
use strict;
use warnings;

my $to = 'xxxxxxx';
my $text = 'test';

my $mech = WWW::Mechanize->new();
$mech->get( 'http://x.x.x.x/index.php' );

# Login

$mech->submit_form(
    fields      => {
        oper    => 'login',
        usr    => 'xxx',
        pwd    => 'xxx',
    }
);

# Now that I logged in I can send the SMS

#$mech->get( 'http://x.x.x.x/index.php' ); Guess this get is useless

$mech->submit_form(
    fields    => {
            to  => $to,
            text => $text,
            submit => 'Send Message'
    }
);

编辑:添加第二种形式的 HTML 代码,它可能很有用。

<form name="sendsms" method="post" action="index.php">
<p>Phone Number:<br><input type="text" size="30" name="to"></p>
<p>Message:<br><textarea cols="20" rows="5" name="text></textarea></p>
<input type="submit" value="Send Message" name="submit">
<input type="reset" value="Reset"><br></form>
4

2 回答 2

0

您需要选择要提交的表格。尝试这个:

$mech->submit_form(
    with_fields    => {
            to  => $to,
            text => $text,
            submit => 'Send Message'
    }
    button => "your_submit_button_name_here",
);
于 2013-07-22T10:07:43.100 回答
0

试试看:

$mech->form_name("sendsms");
$mech->field("to","$to");
$mech->field("text","$text"); 
$click();
于 2015-03-12T23:31:13.243 回答