[讨论]关于CGI跳转页面的问题!

[讨论]关于CGI跳转页面的问题!

[讨论]关于CGI跳转页面的问题!
sub login
{
use CGI qw/:all/;
$cgi = new CGI;

print
header,
a({href=>'guestlist.pl'},"HOMEPAGE"),
hr,
start_html(-titile=>'reg',-BGCOLOR=>'red',-LINK=>'white'),
p,
p,
center(h1('LOGIN')),
p,
p,
p,

start_form(-method=>'POST',-action=>'guestlist.pl'),
center("account:",
textfield(-name=>'user',-size=>10,-maxlength=>10)),
hidden(-name=>'type',-value=>'register'),
p,
center("password:",
password_field(-name=>'passwd',-size=>10,-maxlength=>10)),
p,
p,
p,
center(submit(-name=>'haha',-value=>'Login now!')),
hr,
end_form,
end_html;

if(param('user') && param('passwd'))
{
open(DATA,"/var/www/cgi-bin/data.dat")||die;
@data=<DATA>;
foreach $data(@data)
{
@somebody=split(",",$data);

if(param('user') eq "$somebody[0]" && param('passwd') eq "$somebody[1]")
{
#&
print "Ok,test passed!";
}
close DATA;
}

}
elsif(param('user'))
{
print "Please input your password!";
}
elsif(param('passwd'))
{
print "Please input your account!";
}

else {
print "Please input your account and passwd for login!";
}

}



最近我正在用CGI做一个留言板,以上是我程序中的一段代码。
问题:如何让数据提交后从该页完全跳转到另外页面?将要跳转到的页面在另一个子程序中。

还请各位朋友不吝赐教,谢谢!
如果有兴趣的朋友可以联系我,学习无边界!

MSN: dominic_zsj@hotmail.com
如果你这个程序...
如果你这个程序是test.cgi
你另外一个页面是action=two

那么你在程序执行完成后,不要打印content
打印以下信息print "Location: http://yourhost/cgi-bin/test.cgi?action=two\n\n";

记得后面有两个\n\n

就可以了
可以用html语句...
可以用html语句实现
例如

<meta http-equiv="refresh" content="1; url=http://www.fayland.org/">
if(param('us...
if(param('user') eq "$somebody[0]" && param('passwd') eq "$somebody[1]")
{

#print "Ok,test passed!";
print "Location:http://dominic.8866.org/cgi-bin/guestlist.pl?type=register\n\n"
}

这样好象还不行。会不会是因为我用 use CGI; 的关系呢?
Location:和htt...
Location:和http之间有空格。另外,你如果发现这句显示在浏览器上说明你之间打印了别的东西。不然肯定不会有问题。
CGI里有redirec...
CGI里有redirect
对,的确有redi...
对,的确有redirect的方法。


if(param('user') && param('passwd'))
{
open(DATA,"/var/www/cgi-bin/data.dat")||die;
@data=<DATA>;
foreach $data(@data)
{
@somebody=split(",",$data);

if(param('user') eq "$somebody[0]" && param('passwd') eq "$somebody[1]")
{

#print "Ok,test passed!";

print redirect('www.sina.com');


}
close DATA;

现在页面最下面有错误提示:Status: 302 Moved Location: www.sina.com
正在找原因
我这段代码的意...
我这段代码的意思是,当提交的数据判断为真,页面跳到www.sina.com。
hoowa说得对,原因是前面有打印其他内容导致的。
可不放在后面又不能跳转页面,不知道有没有更好的方法。
<meta http-...
<meta http-equiv="refresh" content="1; url=http://www.fayland.org/">