On Wed, May 4, 2011 at 7:01 PM, Pete Smith <[email protected]> wrote:
> Remove this line:
>
> print "Content-type: text/html\n\n";
if i remvove this line for my script login.pl the web server log gives me
[Wed May 04 19:14:30 2011] [error] [client 192.168.2.94] malformed
header from script. Bad header=<form action="/cgi-bin/login.p:
login.pl
and browser gives me internal server error .
>
> The $cgi->header call is also outputting the HTTP header, but you have
> already created it with the line above. That is why you can see the
> generated header in your browser.
>
> If $evalue != 3 you may want to call $cgi->header without the cookie
> depending on the behaviour you want.
>
> Cheers,
> Pete
>
> On 04/05/11 14:23, Agnello George wrote:
>>
>> Hi
>>
>> In my script i am using template toolkit. I am trying to set the
>> cookie in my browser but all that it does is it prints the following
>> output on my broswer :
>>
>> Set-Cookie: CGISESSID=f032fc8982a1ae022c4f51baa3bc4143; path=/ Date:
>> Wed, 04 May 2011 13:07:40 GMT Content-Type: text/html;
>> charset=ISO-8859-1
>>
>> here is my script , how do is set cookie
>> =========================
>>
>> #!/usr/bin/perl
>> use strict ;
>> use warnings ;
>> use Template;
>> use Data::Dumper;
>> use CGI::Session;
>> use CGI;
>>
>> print "Content-type: text/html\n\n";
>>
>> my $cgi = new CGI;
>> my $session = new CGI::Session(undef, $cgi, {Directory=>'/tmp'});
>>
>>
>> my $tt = Template->new( INCLUDE_PATH => "/var/www/html/template" ) ||
>> die "template process failed:$!";
>>
>> my %tag;
>>
>> $session->clear();
>> $session->expire('+2h');
>>
>>
>> my $evalue = init($cgi, $session);
>>
>> if ( $evalue == 3 ) {
>> my $cookie = $cgi->cookie(CGISESSID => $session->id);
>> print $cgi->header( -cookie=>$cookie );
>> deploy_page();
>>
>> }
>>
>>
>> unless ( $session->param("~logged-in") ) {
>> login_page();
>> $session->delete();
>> exit(0);
>>
>> }
>>
>>
>> sub init {
>> my ($cgi,$session) = @_; # receive two args
>>
>> if ( $session->param("~logged-in") ) {
>> return 3 ; # if logged in, don't bother going further
>> }
>>
>>
>>
>> my $lg_name = $cgi->param("lg_name") or "dfdsfsd";
>> my $lg_psswd = $cgi->param("lg_password") or "dsfdsfsd";
>>
>> # if we came this far, user did submit the login form
>> # so let's try to load his/her profile if name/psswds match
>> if ( my $profile = _load_profile($lg_name, $lg_psswd) ) {
>>
>> $session->param("~profile", $profile);
>> $session->param("~logged-in", 1);
>> $session->clear(["~login-trials"]);
>>
>> return 3;
>> }
>>
>> }
>>
>>
>> sub _load_profile {
>> my ($lg_name, $lg_psswd) = @_;
>> local $/ = "\n";
>> unless (sysopen(PROFILES, "profiles.txt", O_RDONLY) ) {
>> die "Couldnt open profiles.txt: $!";
>> }
>> while (<PROFILES> ) {
>> /^(\n|#)/ and next;
>> chomp;
>> my ($n, $p, $e) = split (/\s+/,$_) ;
>> if ( ($n eq $lg_name)&& ($p eq $lg_psswd) ) {
>> my $p_mask = "x" . length($p);
>>
>> return {username=>$n, password=>$p_mask, email=>$e};
>> }
>> }
>> close(PROFILES);
>>
>> return undef;
>> }
>>
>>
>> sub deploy_page {
>>
>> $tt->process("form/form.html") || die $tt->error();
>> }
>>
>> sub login_page {
>>
>> $tt->process("login.tmpl",\%tag) || die $tt->error();
>> }
>> ==============================================
>>
>> thanks for all the help !!
>>
>
> NET-A-PORTER.COM Irresistible fashion at your fingertips
>
> ______________________________________________________________________
>
> CONFIDENTIALITY NOTICE
> The information in this email is confidential and is intended solely for the
> addressee. Access to this email by anyone else is unauthorised. If you are
> not the intended recipient, you must not read, use or disseminate the
> information. Any views expressed in this message are those of the individual
> sender, except where the sender specifically states them to be the views of
> Net a Porter Ltd.
> Net A Porter Ltd is a company registered in England & Wales Number: 3820604
> Registered Office: 1 The Village Offices, Westfield, Ariel Way, London, W12
> 7GF
> _____________________________________________________________________
>
> --
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> http://learn.perl.org/
>
>
>
--
Regards
Agnello D'souza
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/