Hi,

How do I get beyond the that meta="Refresh" page.
I konw the answer of Andy Lester in the archive, that
"The address of the META REFRESH should be available to you in the
$mech->links() method."
Yes it is - as you can see below, but how should I use it, all what I 
tried either 
        loads again the login-page to start again or
        loads again that meta-page or 
        looses the session, so re-login is required
So how shall I do it?   

My little piece of code using WWW::Mechanize that logs me in is just:

    use WWW::Mechanize;
    my $mech = WWW::Mechanize->new( agent => 'Linux Konqueror' );
    $mech->get( 
'https://acct.server.com/clx/index.php?part=logoff&noclose=true' );
    $mech->success or die "Can't get this url $url\n\n";
    # ok, got the login page..
    my $r = $mech->submit_form(
        fields      => {
            $uFld    => $uNme,
            $pFld    => $pPwd
        }
    );
    die "Couldn't submit form" unless $r->is_success;
    # ok, being here, submit was successfull
    # and this is what I've got
    print $r->content # prints this
      #<html><head>
      #<meta http-equiv="Refresh" 
      #content="0;url=index.php?part=menu&justloggedin=true">
      #</head><body><a 
      #href="index.php?part=menu&justloggedin=true"></a></body></html>

 If I do one of these:
    $mech->follow_link(n=>0);
    $mech->follow_link(n=>1);
I loose the session (need to re-login) and get:
    #<html><head>
    #<meta http-equiv="Refresh" content="0;url=index.php?part=timeout">
    #</head>
    #<body>Session lost<br>
    #<a href="index.php?part=timeout">
    #Click here to go back to the login pa+ge</a>
    #<a href="index.php?part=timeout"></a></body></html>


 If I try to create the url by myself by
 Step 1: 
    print join('; ',@{${$mech->links()}[0]}),"\n\n";
    print join('; ',@{${$mech->links()}[1]}),"\n";

gives me for [0] the mate-url: 
    # index.php?part=menu&justloggedin=true; ; ; meta;
    # https://acct.server.com/clx/index.php; HASH(0x864c5f8)
and for the second url at [1]
    # index.php?part=menu&justloggedin=true; ; ; a;
    # https://acct.server.com/clx/index.php; HASH(0x86168bc)

So I just try: 
    $mech->get( 
'https://acct.server.com/clx/index.php?part=menu&justloggedin=true' )
and again the session is lost => re-login.

And even what I have found for WWW-Mechanize 
(http://rt.cpan.org/Public/Bug/Display.html?id=12882) 
      print $mech->response->request->uri;
 shows: 
    # https://acct.server.com/clx/index.php 
which ist the base not what I need   and therefore this:
     $mech->get ( $mech->response->request->uri );
only reloads the first login-form and not what I want.


If I do a reload after submitting the form,
    $mech->reload();
it just reloads the meta="Refresh.. page.

 Anybody with an idea how I can get beyond this "meta-page"? 

 Thanks a lot in advance;
 Carl 

Reply via email to