Problem submitting a form

Steve Borruso (sborruso@stny.rr.com)
Wed, 21 Mar 2001 22:14:26 -0500


Greetings,

Having some difficulty submitting a form and capturing the resulting
page. Getting a 404 when I try to click() the form.

So far my script will -

Log in to a remote site with my userid/pwd (with cookies and
redirection) Successfully request a page that's full of pre filled
form data.

I now need to -

1) Alter/add data to one particular text area (should be able to
    just  parse the received content, insert my data, then paste it
    back together)

2) Need to then click the Submit button on this form, that has
    my change. Don't want to handle it by specifying name/value
    pairs as the form may change in the future.

3) Once this altered form is submitted I need to catch the resulting
   page, which is another form, and click the Submit button on that
   page.

Any assistance on what I'm doing wrong on the submit or how I can
better isolate the problem is most appreciated.

Thanks,
Steve

Here's my script ....

use LWP::Simple ;
use HTML::TokeParser;
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Request::Common;
use HTML::Form;

etc..........

#-----------------------------------------------------------
# First login with userid/pwd handling cookies and re-direction
# This all works fine ...
#------------------------------------------------------------
$CookieFile = '/mycookiefile.tx';
my $ua = LWP::UserAgent->new;
$ua->cookie_jar(HTTP::Cookies->new(file => "$CookieFile", autosave =>
1));
my $r = $ua->simple_request(POST "http://www.bidville.com/login.cfm",
        {
         url => '',
         nickname => "$myuserid"',
         password => '$mypass",
         });
while ($r->is_redirect) {
  my $u = $r->header('location') or die "missing location: ",
$r->as_string;
  print "redirecting to $u\n";
  $r = $ua->simple_request(GET $u);
}
#-----------------------------------------------------------
# Now request the page that contains pre-filled in form data
#------------------------------------------------------------

$Form_1_Page =
'http://www.bidville.com/blah.cfm?Name1=Value1&Name2=Value2 .....';
$res = $ua->request(HTTP::Request->new(GET => "$Form_1_Page"));
$html = $res->content;

# print $html ;

# Everything works fine up to this point
# Should be able to parse $html here, inserting my change into proper
text box

# Now need to submit the altered form and capture the resulting page

$form = HTML::Form->parse($html,'http://www.bidville.com');
$r = $ua->simple_request($form->click());

print $r-> as_string;

exit;

Here's the latest output ...

HTTP/1.1 200 OK Date: Wed, 21 Mar 2001 23:03:51 GMT Server:
Microsoft-IIS/5.0
Content-Type: text/html Client-Date: Wed, 21 Mar 2001 23:07:37 GMT
Client-Peer:
216.86.32.223:80

Error Occurred While Processing Request

 Error Diagnostic Information

 An error has occurred.

 HTTP/1.0 404 Object Not Found