Php My header()调用未重定向到新页面

Php My header()调用未重定向到新页面,php,html,redirect,header,Php,Html,Redirect,Header,我在使用header方法重定向页面时遇到问题。我想我知道问题是什么。但是我对PHP非常陌生,所以我不知道还有什么可以尝试。据我所知,如果页面在页眉之前已经发送了数据,那么header()方法将不会触发。我觉得这可能是我的问题的一部分,因为在我的头函数之前有几个echo语句。可能是别的什么吗?我该怎么做 echo语句证明找到了正确的用户名和密码。我在头的位置放了一个测试echo语句,它工作得很好。因此,我知道数据库正在查找正确的信息。插入信息后,页面将刷新。谢谢你的关注 <div id= "

我在使用header方法重定向页面时遇到问题。我想我知道问题是什么。但是我对PHP非常陌生,所以我不知道还有什么可以尝试。据我所知,如果页面在页眉之前已经发送了数据,那么header()方法将不会触发。我觉得这可能是我的问题的一部分,因为在我的头函数之前有几个echo语句。可能是别的什么吗?我该怎么做

echo语句证明找到了正确的用户名和密码。我在头的位置放了一个测试echo语句,它工作得很好。因此,我知道数据库正在查找正确的信息。插入信息后,页面将刷新。谢谢你的关注

<div id= "sidebar" >
    <div id="login-box">    
        <form name="client-login" action="<?php $_SERVER['PHP_SELF']; ?>"  method="post">
            <label id="user-lbl">Username:</label><br /><input type="text"
                name="username" id="username" /><br /> <label id="pass-lbl">Password:</label><br /><input
                type="password" name="password" id="password" /><br />     <label>&nbsp;</label><input
                type="submit" value="Login" class="submit" id="login" />
        </form>     
<?php 
$username = $_POST['username'];
$password = $_POST['password'];

if((!isset($username)) || (!isset($password))){

    echo "<p>Username is $username. Password is $password.</p>";

     }else{

    $mysql = mysql_connect("myhost", "username", "password");
    if(!$mysql){
    echo "<p>Cannot connect to database!</p>";}
    $selected = mysql_select_db("mydb", $mysql);
    if(!$selected){
    echo "<p>Cannot find database!</p>";}

    $query = sprintf("SELECT count(*) FROM users WHERE username = '%s' AND password = '%s'", mysql_real_escape_string($username),mysql_real_escape_string($password));

    $result = mysql_query($query, $mysql );
    if(!$result){
    echo "<p>Cannot run query.</p>";}

    $row  = mysql_fetch_row($result);
    $count = $row[0];
    if ($count > 0){
    header("Location: account.php"); die();} else {echo "<p>Invalid username or password!</p>";}
}  
?>

    </div><!-- #login-box -->


是的,那是你的问题


最好的解决方案是在向浏览器输出任何内容之前先执行代码。除此之外,添加
ob_start()将缓冲输出,允许使用
头()即使在打印/回显文本后也要打电话上班。

是的,这是你的问题

最好的解决方案是在向浏览器输出任何内容之前先执行代码。除此之外,添加
ob_start()将缓冲输出,允许使用
头()即使在打印/回显文本后仍调用工作。

如果调用
header()
,则应在任何其他将输出打印到HTML流的函数之前,或在该文件中的任何HTML语句之前调用它。在调用
header()
之前,甚至不能发送换行符

在本例中,首先将
和其他7行发送到客户端,然后只调用
header()
函数。这就是为什么错误发生在你身上

原因:

header()
调用旨在将HTTP头信息传递到客户端浏览器。标题信息应该是要发送到客户端的第一个信息。如果您没有在PHP脚本中调用
header()
,PHP将在发送PHP文件的第一行之前自动发送头信息

一旦发送了一个头,就不能在同一个PHP文件中发送另一个头。因此,如果要以独占方式发送头,请在任何其他正文内容开始之前发送。

如果调用
header()
,则应在将输出打印到HTML流的任何其他函数之前,或在该文件中的任何HTML语句之前调用它。在调用
header()
之前,甚至不能发送换行符

在本例中,首先将
和其他7行发送到客户端,然后只调用
header()
函数。这就是为什么错误发生在你身上

原因:

header()
调用旨在将HTTP头信息传递到客户端浏览器。标题信息应该是要发送到客户端的第一个信息。如果您没有在PHP脚本中调用
header()
,PHP将在发送PHP文件的第一行之前自动发送头信息

一旦发送了一个头,就不能在同一个PHP文件中发送另一个头。因此,如果您想以独占方式发送标题,请在任何其他正文内容开始之前发送。

使用php代码:

标题(“页面url”);
在上载到服务器时,使用标头可能会出现问题

通过使用javascript:

window.location='page url';
使用php代码:

标题(“页面url”);
在上载到服务器时,使用标头可能会出现问题

通过使用javascript:

window.location='page url';

打开
错误报告(E\u ALL)
。那会让你改正所有的错误!由于您对PHP非常陌生,所以在开发过程中始终打开错误报告。这会对你有很大帮助。@rabudde这是我应该放在每个php页面上的东西吗?我是否需要更改ini文件?你知道什么好文学作品吗?net有一本手册,但有点吓人。谢谢你们两位的小费!我不知道有什么好的文学作品是这样的。我从实践中学到了一切。打开错误报告功能只对开发有好处,对生产没有好处,但这可以帮助我经常发现失败。打开
错误报告功能(E\u ALL)
。那会让你改正所有的错误!由于您对PHP非常陌生,所以在开发过程中始终打开错误报告。这会对你有很大帮助。@rabudde这是我应该放在每个php页面上的东西吗?我是否需要更改ini文件?你知道什么好文学作品吗?net有一本手册,但有点吓人。谢谢你们两位的小费!我不知道有什么好的文学作品是这样的。我从实践中学到了一切。打开错误报告只对开发有好处,对生产没有好处,但这有助于我经常发现失败。谢谢你的建议!但是,我将函数添加到php块内部和php块外部的顶部。什么也没发生。这是一个wordpress网站,所以它是分块的。这可能是个问题吗?例如当我实际登录到index.php页面时,我将此代码添加到我的sidebar.php中。谢谢你的建议!但是,我将函数添加到php块内部和php块外部的顶部。什么也没发生。这是一个wordpress网站,所以它是分块的。这可能是个问题吗?例如当我实际登录到index.php页面时,我正在将此代码添加到我的sidebar.php中。感谢您的详细回复!我不明白如果标题依赖于变量中的信息,我怎么能把它放在页面顶部。我可以单独写一页,但我