Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

OK, I've not made any progress on this an I'm getting a bit frustrated. Some notes on the other comments and what I've done:

  • Apache::Cookie->bake calls  $r->err_headers_out->add('Set-Cookie' => $cookie) and thats all it does.
    81: sub bake { 82: my ($c, $r) = @_; 83: $r->err_headers_out->add("Set-Cookie", $c->as_string); 84: }
  • I used all the typical debug stuff and I'm absolutely sure the values I think are going are there, what I can't see is what's happening with the cookie.
  • I installed LiveHTTPHeaders on firefox and I'm getting cookie set in both the request and response header if I stop the page from forwarding, but once I let mason forward back to the URL passed in, it is in neither.

    The latest version of the code is

    <%init> use Apache2::Const -compile => qw(REDIRECT); my $item; my $date; my @line; my $res = User->validate($AuthDBH, $ARGS{username}, $ARGS{password}); my $url = "/"; if (length($ARGS{ret_url}) > 1) { $url = $ARGS{ret_url}; } if ($res->{res}) { my $MAC = Digest::SHA1::sha1_hex($ARGS{username}, "Get the S1gnal!") +; my $cookie = Apache2::Cookie->new ( $r, -name => 'user_login', -value => { $ARGS{username} . "," . $MAC }, # -path => '/', # -domain => '', -expires => '+1M', ); $r->err_headers_out ->add('Set-Cookie' => $cookie->as_string); $r->headers_out->set(Location => $url); # return Apache2::Const::REDIRECT; } else { if (index($ARGS{ret_url}, '?') >= 0) { $url .= "&login_error=$res->{error_msg}"; } else { $url .= "?login_error=$res->{error_msg}"; } } #$url= "/index.html"; $m->redirect($url); </%init> <%flags> inherit=> '/syshandler' </%flags> <% $url %> login_submit.html: 65 lines, 1088 characters.

    I keep rereading the responses sent and trying a million different variations from references I've googled up... this cannot be this difficult.


    --Jimbus aka Jim Babcock
    Wireless Data Engineer and Geek Wannabe

    In reply to Re: Apache2::Cookie troubles... sanity check needed on auth/sess handling by jimbus
    in thread Apache2::Cookie troubles... sanity check needed on auth/sess handling by jimbus

    Use:  <p> text here (a paragraph) </p>
    and:  <code> code here </code>
    to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    [hippo]: Understood. I'll have to go through the code and see if it's doing anything fancy with ties, dual-vars or non-scalars. In the end, it's probably a bug though.
    [Corion]: Aaah - you should be able to do this with overload, but I would hit somebody really hard if they constructed objects that are true but the empty string, and you not knowing about the domain knowledge where this makes sense
    [Eily]: you could tie a variable into not having the same value each time, if you like to make people who try to debug your code facepalm
    [Corion]: perl -wle 'package o; use overload q("") => sub {warn "str"; ""}, bool => sub{warn "bool"; 1}; package main; my $o={}; bless $o => o; print "Yay" if ($o && !length($o))'
    [Corion]: But people writing such code should document the objects they construct and why it makes sense for an object to be invisible as string while being true in a boolean context
    [hippo]: That's equal parts clever and horrendous.
    [Eily]: the overload version wouldn't return true with "$x" && !length $x though, I guess
    [hippo]: The more I look at this code, the more $x is a plain old scalar and the more this condition will never be true. I'm calling it a bug at this point.
    [hippo]: Thanks for your input which has soothed my sanity (a little)

    How do I use this? | Other CB clients
    Other Users?
    Others about the Monastery: (14)
    As of 2017-07-27 13:38 GMT
    Find Nodes?
      Voting Booth?
      I came, I saw, I ...

      Results (413 votes). Check out past polls.