in reply to Re: Submitting a form
in thread Submitting a form

SaintMike, thank you for responding. the HTML I've displayed is what is coming back from the server when I get past the login page. I'm trying to accomplish in perl what my mouse and fingers do when I click the 'Yes' button. I read somewhere that in calling the Javascript as I have it, the parameter "continue" gets created (lower case). what does this mean ?
[action => "abort", Continue => "Yes"]
I'm guessing it's an assignment. The Perl Cookbook seems to use single quotes. Does it matter. Murad

Replies are listed 'Best First'.
Re: Re: Re: Submitting a form
by saintmike (Vicar) on Feb 27, 2004 at 01:32 UTC
    Just checked, if you press the "yes" button, the browser sends
    * action o continue * Continue o Yes

    and if you're pressing "no", you get
    * action o continue * Abort o No

    So, in your code, you need to say
    POST ' /ClientDownload/download/download.asp', [action => "continue", Continue => "Yes"];

    to create a HTTP::Request object simulating the "Yes". Check out the documentation on HTTP::Request::Common -- the POST function expects a URL and a reference to an array containing key-value pairs of CGI parameters you want to pass.

    If you want to figure out what a browser sends to a server, there's a simple trick: Put a cgi-dump script like

    use CGI qw/:standard/; my($self) = CGI::self_or_CGI(); print header(), start_html('-title' => "CGI Dump", '-BGCOLOR' => "white"), h2("Query Parameters:"), CGI::as_string(), h2("Environment:"), (map { p("$_ => $ENV{$_}") } sort keys %ENV), end_html();

    into a cgi-bin directory of a web server you have control over (it can even be on your local machine). Then, save the HTML of the form you're testing to a local file, and replace its action-URL by the URL to the CGI script on your server (e.g. http://localhost/cgi-bin/dump.cgi). If you then load the local HTML form file into the browser (File->OpenFile) and click on the submit button, the browser will contact your server with the dump-script above and show which parameters have actually been submitted -- this way, you don't need to worry about JavaScript, because the browser takes care of it.