2014-04-26 35 views
0

头之前执行的Java脚本内容的回声这是我的代码:如何在PHP

ob_start(); 

    echo"<script type='text/javascript'>alert('Wrong username or password Please try again')</script>"; 
       header("Location:http://localhost/xampp/my_hospital/login.php"); 
ob_end_flush(); 

此代码位于被称为login_check.php.I一个单独的文件希望告警弹出,然后它应该重定向到login.php。问题是警报不显示,但重定向工作。

+1

在php中使用'header()'将在任何HTML/JS呈现给客户端之前重定向用户。重定向也需要通过'window.location'或类似的东西存在于JavaScript中。 – Sean3z

+0

为什么不在会话中存储消息,重定向登录失败并在login.php中显示消息? –

回答

0

试试这个:

echo "<script type='text/javascript'> 
     alert('Wrong username or password Please try again'); 
     location = 'http://localhost/xampp/my_hospital/login.php'; 
     </script>"; 
0

不能使用header()

功能之前回声或输出任何字符(即使是空格),其发送/修改HTTP头必须在任何输出之前调用制成。否则,调用失败:

警告:不能更改头信息 - 头已经发出已 (输出开始文件:行)

使用meta refresh代替:

<html xmlns="http://www.w3.org/1999/xhtml">  
    <head>  
    <title>The Tudors</title>  
    <meta http-equiv="refresh" content="5;URL='http://yoursite.tld/loginpage'" />  
    </head>  
    <body> 
    <p>Wrong username or password Please try again</p> 
    </body> 
</html>  

你也可以使用ob_start()

<?php 
ob_start(); 
echo "<script type='text/javascript'>alert('Wrong username or password Please try again');"; 
header("Refresh: 5; http://yoursite.tld/loginpage"); 
ob_end_flush(); 
?> 
+0

检查这个http://stackoverflow.com/questions/3766353/interview-question-can-we-have-an-echo-before-header – user1613360

+0

看看这一个:http://stackoverflow.com/questions/8028957/如何对修复 - 标题 - 已发送错误功能于PHP?answertab =#活跃制表顶部 –

0

以下方法在重定向用户之前等待10秒钟。

ob_start(); 

header("Refresh: 10; url=/xampp/my_hospital/login.php"); 
echo"<script type='text/javascript'>alert('Wrong username or password Please try again');</script>"; 

ob_end_flush();