0

フォームでログインした後、別のフォームで SMS を送信できる PHP ページ (index.php) があります。WWW::Mechanize を介してログインできました (応答を印刷すると、SMS を送信するための 2 番目のフォームが正しく表示されます) が、他のフォームを送信できません。応答を印刷すると、代わりに 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'
    }
);

編集: 2 番目のフォームの 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->form_name("sendsms");
$mech->field("to","$to");
$mech->field("text","$text"); 
$click();
于 2015-03-12T23:31:13.243 に答える
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 に答える