On Wed, May 4, 2011 at 7:01 PM, Pete Smith <pete.sm...@net-a-porter.com> 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: beginners-unsubscr...@perl.org > For additional commands, e-mail: beginners-h...@perl.org > http://learn.perl.org/ > > > -- Regards Agnello D'souza -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/