php标题位置无法修改错误

时间:2014-03-23 11:27:18

标签: php redirect

在我的网站上,如果我的语句运行正确,我想实现重定向 - 在这种情况下,如果登录详细信息正确,请将用户带到主页。

现在,我已经阅读了多个关于可能GoDaddy问题的论坛和问题,但我没有任何快乐,所以也许其他人在短暂地查看代码可以找出为什么我不能重定向?我的重定向接近底部 - 如果找到用户帐户,我希望将它们重定向到header("Location: index.php");任何想法?

我已经开始收到错误了 警告:无法修改标头信息 - 已经发送的标头(在/home/accountname/public_html/login.php:2中开始输出)在/home/accountname/public_html/login.php的第#行上是(位置标头index.php) )

登录页面:

 <?php
    session_start();
    require("includes/connect.php");
    ?>

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <meta name="viewport" content="width=device-width, initial-scale=1">
            <title>Login</title>
            <link rel="stylesheet" type="text/css" href="css/login.css">

            <!--Cited Bootstrap: Responsive web design-->
            <link href="css/bootstrap-theme.css" rel="stylesheet" type="text/css">
            <link rel="stylesheet" type="text/css" href="css/bootstrap.css">
        </head>
        <body>
            <div class="container">
                <form class="form-signin" role="form" action="login.php" method="post">
                    <h2 class="form-signin-heading">Please sign in</h2>
                    <input type="text" class="form-control" placeholder="Username" name="username_login" required autofocus>
                    <input class="form-control" type="password"  placeholder="Password" name="user_password" required>
                    <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
                    <label class="forgotten"><a href="forgottenpass.php">Forgotten password?</a></label>
                </form>

    <?php

    //if an admin or user session is already in progress then dont let them log in, redirect to 'index.php'
    if (isset($_SESSION['admin']) && ($_SESSION['admin'] == true) || isset($_SESSION['user']) && ($_SESSION['user'] == true)) {
        header ("Location: index.php");     
        //if use not logged in then
     }else
        if ( trim($_POST['username_login']) AND trim($_POST['user_password']))
        {
        //if username and password are entered, blank before user fills form
        $usr = (isset($_POST['username_login'])? $_POST['username_login']:null);
        $pwd = (isset($_POST['user_password'])? $_POST['user_password']:null);

        $usr = mysqli_escape_string($usr); //Prevent against SQL Injection by avoiding "\" being executed
        $pwd = mysqli_escape_string($pwd); //Prevent against SQL Injection by avoiding "\" being executed

        if ($usr && $pwd){  
            $epwd = $pwd;
            $q = "SELECT * FROM users WHERE UName='$usr' LIMIT 1;";
            $resultset = mysqli_query($conn,$q);
            $rowcount = mysqli_num_rows($resultset);

            if ($rowcount==1){ 
                while ($userRow = mysqli_fetch_assoc($resultset)){
                    //Get the DB username and password to compare
                    $dataBaseEmail = $userRow['UName'];
                    $dataBasePass = $userRow['Password'];   
                    $userGroup = $userRow['UserLevelID'];
                }

            mysqli_free_result($resultset);
            unset($q);

            //Compare DB user and pass to those entered
            if ($usr == $dataBaseEmail && $epwd == $dataBasePass){
                //Now that we know they are activated ect, we can create a session based on their privlidges 
                if ($userGroup ==1){ //ADMIN load the console 
                    header("Location: index.php");
                    $_SESSION['admin'] = true;
                }else{ //Normal User
                    header ("Location: index.php");
                    $_SESSION['user'] = true;
                    $_SESSION['user'] = $dataBaseEmail;
                    }  
                }else{//user and pass do not match DB
                    echo '<div class="login-error">Incorrect Password, try again</div>';     
                }
            }else{
                echo '<div class="login-error">Error: There is no such user registered on the system. Please check the username and password entered.</div>';
            }
        }
    }
    ?>

Index.php页面:

<?php
session_start();
include "includes/header.php";
include "includes/connect.php";
?>

<div class="jumbotron">
    <h1>Apps for <?php echo $os?></h1>
    <p>Text</p>

<?php echo $os?>
<?php 

if(isset($_SESSION['user'])){
  echo "Hello " .$_SESSION['userEmail'];
}
?>

</div>

<div class="row">

<?php
   $current_url = $_SERVER['REQUEST_URI'];
   $current_url = substr($current_url, 1);

    $results = $conn->query("SELECT * FROM apps A INNER JOIN device D ON D.DeviceID = A.DeviceID WHERE D.DeviceName = '$os'");
        if ($results) { 
        //output results from database
        while($obj = $results->fetch_object())
        {

            echo "<div class=\"col-6 col-sm-6 col-lg-4\">";
            echo '<form method="post" action="cart_update.php">';
            echo '<h2>'.$obj->ApplicationName.'</h2>';
            echo '<p>'.$obj->ApplicationDescription.'</p>';
            echo '<button class="add_to_cart">Add To Cart</button>';
            echo '<input type="hidden" name="product_code" value="'.$obj->ApplicationID.'" />';
            echo '<input type="hidden" name="type" value="add" />';
            echo '<input type="hidden" name="return_url" value="'.$current_url.'" />';
            echo '</form></div>';
         }

        }
 ?>



</div><!--/row-->
</div><!--/span-->




<?php
include "includes/sidebar.php";
?>

<?php
include "includes/footer.php";
?>

按照建议启用错误日志后,记录了以下错误:第24行是我的提交按钮。

[15-Mar-2014 21:06:57 UTC] PHP Fatal error:  Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24

[15-Mar-2014 21:07:09 UTC] PHP Fatal error:  Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24

[15-Mar-2014 21:16:04 UTC] PHP Fatal error:  Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24

[15-Mar-2014 21:16:06 UTC] PHP Fatal error:  Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24

[15-Mar-2014 21:16:08 UTC] PHP Fatal error:  Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24

[15-Mar-2014 21:16:55 UTC] PHP Fatal error:  Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24

[15-Mar-2014 21:16:56 UTC] PHP Fatal error:  Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24

[15-Mar-2014 21:20:36 UTC] PHP Fatal error:  Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24

[15-Mar-2014 21:24:47 UTC] PHP Fatal error:  Call to a member function query() on a non-object in /home/godaddyaccount9/public_html/index.php on line 24

[15-Mar-2014 21:25:30 UTC] PHP Fatal error:  Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24

[16-Mar-2014 05:32:41 UTC] PHP Fatal error:  Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24

1 个答案:

答案 0 :(得分:0)

发送标题后你无法编写代码。像这样重写你的代码..

        if ($userGroup ==1){ //ADMIN load the console 
            $_SESSION['admin'] = true;      //Moved it here from below 
            header("Location: index.php");
            exit;                          //<--- Add an exit here
            //$_SESSION['admin'] = true;  //<--- Commented this and moved before header function
         }
         else{ //Normal User
                 $_SESSION['user'] = true;            //<-- Moved Up  
                 $_SESSION['user'] = $dataBaseEmail; //<-- Moved Up
                 header ("Location: index.php");
                 exit;                             //<--- Add an exit here
             }