关于一个登录页面分流跳转的简单问题,大家请进!

sxmjjh 2004-07-21 02:53:17
这是login.html的内容:

<form action="login2.php" method="post">
<TABLE width="450" border="0" align="center">
<TR align="left">
<TD height="30" width="27%" align="left">请登陆后查看</TD>
<TD height="30" width="22%" align="center"> 用户名 </TD>
<TD height="30" width="*" align="center"><input type="text" name="_username" id="_username"/></TD>
</TR>
<TR align="left">
<TD height="30" width="27%" align="left"></TD>
<TD height="30" width="22%" align="center"> 密 码 </TD>
<TD height="30" width="*" align="center"><input type="text" name="_password" id="_password"/></TD>
</TR>
<TR align="left">
<TD height="30" width="27%" align="left"></TD>
<TD height="30" width="22%" align="right"><input type="submit" value="登录"/></TD>
<TD height="30" width="*" align="left"></TD>
</TR>
</TABLE>
</form>

这个是login2.php的内容:

<?php
if (($_POST[_username]=="abcd")&&($_POST[_password]=="1234")){
echo "成功登录,页面跳转中,请稍候……";
}
else{
echo "用户名或密码不对,请重新输入";
}
?>
<form action="login.html" method="post">
<TABLE width="60%" border="0" align="center">
<TR align="center">
<TD height="100" width="27%" align="center" valign="bottom"><INPUT TYPE="submit" value="点此返回登录页面"/>
<A href="http://202.115.130.251/sec/lc/prictice/login.html"></A></TD>
</TR>
</TABLE>
</form>

我想实现的是:
1.当用户输入的信息不对时,输出login2.php中的流控制里的else语句,并显示“点此返回登录页面”的sumbit,这个不自动跳转;
2.当用户输入的信息正确时,输出login2.php中的流控制里的if语句,但不显示“点此返回登录页面”的sumbit,并自动跳转到login3.html.


各位帮忙啦!谢了先!
...全文
272 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxmjjh 2004-07-22
  • 打赏
  • 举报
回复
谢谢各位了,问题基本算是解决了,剩下的就是我自己的工作了,非常感谢各位的发言!


结帖!
tim104 2004-07-22
  • 打赏
  • 举报
回复
如果你一定要输出"成功登录,页面跳转中,请稍候……"用php是不行的,因为header()前是不能有输出的。你可以用一下方法:
<?php
if (($_POST[_username]=="abcd")&&($_POST[_password]=="1234"))
{
echo "<html><head><meta HTTP-EQUIV=Pragma CONTENT=no-cache><meta http-equiv=Refresh content=\"2;URL=跳转到的页面.html\"><meta http-equiv=Content-Type content=text/html ; charset=gb2312><title>Login……</title></head><body><br><p align=center><FONT COLOR=#FF0000>成功登录,页面跳转中,请稍候……</FONT></body></html>";

}else{
echo "用户名或密码不对,请重新输入"."<form action=login.html method=post><TABLE width=60% border=0 align=center>
<TR align=center><TD height=100 width=27% align=center valign=bottom><INPUT TYPE=submit value=点此返回登录页面><A href=http://202.115.130.251/sec/lc/prictice/login.html></A></TD></TR></TABLE></form>";

}
?>
zyzeric 2004-07-22
  • 打赏
  • 举报
回复
echo "成功登录,页面跳转中,请稍候……";
header("Location:login3.html");
exit(0);


很明示这是错误的.......
在header()这前怎么能的输出呢?

哈啤猫 2004-07-21
  • 打赏
  • 举报
回复
根本的问题在于:php的缓冲输出。去看这部分资料吧,手册里有的。head函数必须在所有输出之前执行,你让前面的输出缓冲下来,再用head函数就可以了。:)


本人第一次来,能给加 1 分么?
kkk2kkk 2004-07-21
  • 打赏
  • 举报
回复
一、header()函数在使用时必须在页面没有任何输出的前提下,所以不可能先输出“成功登录,页面跳转中,请稍候……”再跳转;
二、如果你想先显示“成功登录,页面跳转中,请稍候……”然后再跳转,那么只能利用JavaScript,一般来说因为跳转动作很短,因此也很难看到你的文字,但如果你一定要达到这种效果,那么可以在JS里面用setTimeout()函数来定时跳转。
sxmjjh 2004-07-21
  • 打赏
  • 举报
回复
另外我把出错的header()函数前的echo "成功登录,页面跳转中,请稍候……"一句去掉之后还是会出错!!!
sxmjjh 2004-07-21
  • 打赏
  • 举报
回复
谢谢各位了先!

大家的方法我分别试了一下:

当我用hlddn(西藏的那片天)的方法时:
  header("Location:页面.html");
提示这一行有错误,我不清楚header()这个函数的详细用法,手头只有一个半中文的PHP手册,因为赶时间,看起来有点恼火,好象是在传统标头里只能用一次,在新的多型标头规格 (Multipart MIME) 可以出现二次以上。我就不太明白(Multipart MIME)是什么概念?
大家有知道的可以详细解释一下吗?以及header()函数的详细用法,或是大家有较新的中文php手册的告一声哪里有下!谢谢了先!

我用52juanjuan(Fibona) 的方法解决了问题!不过还是有两点小问题:
  1.我想完全用php来实现整个功能(不是我不开化,只是想彻底搞清楚,呵呵!);
  2.当我用了这个方法以后,可能是页面跳转太快了还是“echo "成功登录,页面跳转    中,请稍候……";”这一句没起作用,看不到这个提示~~~,然后我只好又在目标链   接和这一页中间有加了一个页面,专门用header()函数来自动跳转,并输出提示。可是   这样又有问题了,当我在浏览器里后退的时候,会出现这个中间页面,并且还会跳转到   下一个页面,真是让人哭笑不得~~~

然后我又用了fzjw(清风) 的办法,仍是提示出错,出错信息和用 hlddn(西藏的那片天)的办法的出错信息相同,又是header()函数的问题!!!出错信息如下:
  Warning: Cannot modify header information - headers already sent by (output    started at /home/1/login2.php:10) 这个经典错误~~~

所以暂时先不结帖,希望大家再讨论一下有关方面的问题,高手指点一下,新手学习一下(其实我也算新手~~)!

大家都有分!再次谢谢 hlddn(西藏的那片天),52juanjuan(Fibona),armi51(armi514),
fzjw(清风) 和路过的 tt007(独孤求败) !
fzjw 2004-07-21
  • 打赏
  • 举报
回复
同意52juanjuan(Fibona)的

顺便修改一下
<?php
if (($_POST[_username]=="abcd")&&($_POST[_password]=="1234")){
$goto = "页面.html";
header("location: $gogo);
exit;
}
else{
echo "用户名或密码不对,请重新输入";
echo "<a href=\"login.html\">点此返回登录页面</a>";
exit;
}
armi514 2004-07-21
  • 打赏
  • 举报
回复
<script language=JavaScript>
function MM_goToURL() {
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args[i]+\".location='\"+args[i+1]+\"'\");
}
</script>

if(是否成功)
{
echo "<script language=javascript>alert(\"不成功\");history.go(-1);</script>>";
}
else
{
echo "<script language=javascript>alert(\"成功了\");MM_goToURL('parent','xxxxxxxxxxx.htm');</script>";
}
tt007 2004-07-21
  • 打赏
  • 举报
回复
路过
52juanjuan 2004-07-21
  • 打赏
  • 举报
回复
把login2.php改成下面的就可以了:
<?php
if (($_POST[_username]=="abcd")&&($_POST[_password]=="1234")){
echo "成功登录,页面跳转中,请稍候……";
echo "<script language=\"javascript\">";
echo "location.href=\"跳转到的页面.html\";";
echo "</script>";
}
else{
echo "用户名或密码不对,请重新输入";
echo "<a href=\"login.html\">点此返回登录页面</a>";
exit;
}
就是要求密码不对时,必须将其终止,所以加个exit;语句。
hlddn 2004-07-21
  • 打赏
  • 举报
回复
echo "成功登录,页面跳转中,请稍候……";
header("Location:login3.html");
exit(0);

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧