Hi List members: I am writing a perl script that automatically logs in an a password protected admin area. Once logged in I want the script to be able to fetch pages and also be able to submit any form post/get requests within the admin area.
However it's not working. So I need some help. Here is my current problem. From the Perl script, I was able to login with my credentials by using the following code: $browser = LWP::UserAgent->new( ); $browser->env_proxy( ); # if we're behind a firewall # Login into the script $response = $browser->post( "$login", [ 'user' => $username, 'password' => $password, 'submit' => 'Login' ], ); where, $login = the url script that processes the login data that the forms submits; $username, and $password are the credentials. I was able to login as I passed the following line of code: die &error_file("Error1: $response->status_line", "sub login()") unless $response->is_success; Now from the browser when I login, it takes me to the admin area which is a ".php" script (but I see the html code). In my script after the above line I did the following: # save the headers returned open (FH, ">contents.dat"); print FH $response->headers_as_string; close (FH); @headers = $response->headers_as_string; # now append the html data returned open (FH, ">>contents.dat"); print FH "\n"; print FH $response->content(); close (FH); For the headers I see this: Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Connection: close Date: Sun, 01 Dec 2002 06:08:04 GMT Pragma: no-cache Server: Apache/1.3.26 (Unix) mod_perl/1.27 PHP/4.2.1 mod_ssl/2.8.10 OpenSSL/0.9.6e Content-Type: text/html Expires: Thu, 19 Nov 1981 08:52:00 GMT Client-Date: Sun, 01 Dec 2002 05:30:08 GMT Client-Response-Num: 1 Client-Transfer-Encoding: chunked Set-Cookie: PHPSESSID=3de06093c289ef6f2b07dd47c73594e1; path=/ Title: Login X-Powered-By: PHP/4.2.1 By the looks of this, they are using a Cookie for the current session. For the html returned, it just returned the following: <html> <head><title>Login</title> <script language="javascript"> function setCookie(name,value,days) { var expires = new Date(); expires.setTime(expires.getTime() + days*24*60*60*1000); document.cookie = name + "=" +value + ((expires == null) ? "" : "; expires=" + expires.toGMTString()) ; }//eof function setCookie() </script> </head> <body> <script>document.location='inside_home.php';</script> </body> </html> I do not see the html code that I see from my browser. I just see the php script name. Problem 1: How do I get the script to return the html code for the php script ? Problem 2: For the cookies that was set, how do I set the Cookie jar to use this session for all my requests ? If I add the following line when I create the "$browser" object, will it work: $browser->cookie_jar( {} ); Now I actually use all the headers that was returned after login, and added the following to fetch a page from the admin area: $response = $browser->get($url, @headers); die &error_file("Error2: $response->status_line", "sub login()") unless $response->is_success; # save the headers returned open (FH, ">first.html"); print FH $response->headers_as_string; close (FH); # now append the html data returned open (FH, ">>first.html"); print FH "\n"; print FH $response->content(); close (FH); $url = the url for the "inside_home.php" script; @headers = $response->headers_as_string; This did not fetch the html code that I see form my browser. Instead in the file "first.html", I saw that the error page was to login again. I presume this is because I did treat the cookie session I was assigned correctly. So this goes back to problem 2 above. If anyone can help me out on this that would be greatly appreciated. Louis. _______________________________________________ Perl-Unix-Users mailing list [EMAIL PROTECTED] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs