Remember that, immediately after print redirect("search.cgi");
, you must return. Your code should not proceed beyond that point, because having issued the redirect-order in response to this HTML packet, you have nothing further to do with this. (The user’s browser will receive the redirect, and will act upon it, and so, at some time in the future, you’ll (maybe...) get another HTML packet from the same user requesting the new address.)
The same thing is true, later on, when you (ask the browser to) redirect and (ask the browser to) set a cookie. When you have given the browser that instruction, you are done (for now). So, you must return.
It is reasonable to generate the login form as your output, as you do now, either when “login failed” or,in the case where param is not-present, they are here for the first time and not-yet logged in.
So, your (corrected) logic will have three possible outcomes, and it will execute one of these three and then return:
- If the user is logged-in, he is redirected to search.cgi.
- If the user presents valid credentials, he is redirected and a cookie is stored.
- Otherwise, the login form is displayed, with-or-without an “incorrect password” warning.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
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:
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
- 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
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] ||