in reply to Re: CGI redirect
in thread CGI redirect

Thanks for the reply. I removed the headers from poll.cgi. Now I get a 'Page cannot be displayed error'. The problem is, poll.cgi takes the vote and writes it to a file. results.cgi reads the file after each vote and populates a table.

poll.cgi
#!C:/Perl/bin/perl -wT use CGI qw(:standard); use CGI::Carp qw(warningsToBrowser fatalsToBrowser); use strict; use Fcntl qw(:flock :seek); my $outfile="poll.txt"; if(param('club')){ open(POLL,">>$outfile") or dienice ("Can't open poll.txt: $!"); flock(POLL, LOCK_EX); seek(POLL,0,SEEK_END); print POLL param('club')."\n"; close(POLL); } #redirect to result.cgi print redirect ("http://10.20.91.122/cgi-bin/results.cgi"); sub dienice { my($msg) = @_; print header; print start_html("Error"); print h2("Error"); print $msg; print end_html; exit; }
results.cgi
#!C:/Perl/bin/perl -wT use CGI qw(:standard); use CGI::Carp qw(fatalsToBrowser warningsToBrowser); use strict; use Fcntl qw(:flock :seek); print header; print start_html; my $outfile="poll.txt"; open(POLL,"$outfile") or dienice("Can't open $outfile:$!"); #set a shared lock on the file flock(POLL,LOCK_SH); #seek the beginning of the file seek(POLL,0,SEEK_SET); my(%count,$total_count); $total_count=0; foreach my $i ("mutd","che","ars","liv","none"){ $count{$i}=0; } while(my $rec=<POLL>){ chomp($rec); $total_count = $total_count+1; $count{$rec} = $count{$rec}+1; } print <<END; <b>Which is your favorite club?</b><br> <table border=0 width=50%> <tr> <td>Manchester United<td> <td>$count{mutd} votes<td> <tr> <td>Arsenal<td> <td>$count{ars} votes<td> <tr> <td>Chelsea<td> <td>$count{che} votes<td> <tr> <td>Liverpool<td> <td>$count{liv} votes<td> <tr> <td>Others<td> <td>$count{none} votes<td> </table> END print end_html; sub dienice { my($msg) = @_; print h2("Error"); print $msg; print end_html; exit; }

Replies are listed 'Best First'.
Re^3: CGI redirect
by jithint (Novice) on Aug 07, 2009 at 16:31 UTC
    Thanks guys. Now it works. I removed all the headers (header,start_html,end_html) and used :
    print "Location: http://abc/xyz\n\n"
    Now it redirects correctly.