无法重定向到home.php登录后收到警告

时间:2018-02-10 13:02:13

标签: php mysql pdo

我正在使用PDO连接到数据库并获得结果。我的登录系统正在运行。我收到了结果(用echo命令检查)。我没有使用MD5()SHA256(),因为我正在测试。稍后我会实施它们。问题是header()函数发出警告,但不会重定向到主页。

我在index.php文件中调用login.php(带有html布局),login.php调用PDO的(用户)login()函数并返回true / false;如果结果为真,我将重定向到home.php

警告:

  

警告   :无法修改标题信息 - 已经发送的标题(输出在/home/thesho28/public_html/greetme/index.php:51开始)在/home/thesho28/public_html/greetme/includes/login.php第38行

我不明白,因为我没有在index.php上使用header()函数,除了相同的代码正在使用wamp(localhost)

....... Login.php代码如下...........

<?php
include $_SERVER['DOCUMENT_ROOT'].'/greetme/core/database/connection.php';
if(isset($_POST['login']) && !empty($_POST['login']))
{
  $cemail=$_POST['email'];
  $pwd=$_POST['password'];
  $email=$getFromU->checkInput($cemail);
  $password=$getFromU->checkInput($pwd);
    if(!filter_var($email, FILTER_VALIDATE_EMAIL))
    {
       $loginerr="Invalid Email";
    }                             
     else
    {
       // checked, i get back the result from session variables
      if($getFromU->login($email,$password)===false) 
        { 
          $loginerr="Incorrect Email/Password";
          $_SESSION['email']=$email;
        }
         else
         {
            $username=$_SESSION['username'];
            $last_login=$_SESSION['last_login'];
             echo $last_login; echo $username; 
            // getting results back, login is successful
            /* $result=$getFromU->updateUserLastLogin($username,$last_login); 
               if($result===false)
               { 
                 echo "error";
                }
                else
                {
                 $_SESSION['new_login']=date('D, d F, Y');
               }
        */
           header('Location:../home.php');
         }
    }
}        

?>
<div class="d-flex flex-col" id="login-section">
  <div class="card-body bg-primary">
    <form method="post">
      <div class="form-group">
        <div class="input-group">
          <i class="fa fa-envelope input-group-addon"></i><label for="email"></label>
          <input type="email" name="email" class="" required placeholder="Email"
          <?php 
            if(isset($_SESSION['email']))
            {
              $email=$_SESSION['email'];
              echo 'value="'.$email.'"';
            }
          ?>  
          > 
        </div>
      </div>
      <div class="form-group">
        <div class="input-group">
          <i class="fa fa-lock input-group-addon"></i><label for="password"></label>
          <input type="password" name="password" class="" placeholder="Password" required>  
        </div>
      </div>
      <div class="form-group">
        <input type="submit" class="btn btn-outline-dark text-light" value="LOG IN" name="login">
      </div>    
      <?php 
      if(isset($loginerr))
      {
        echo '<span class="error">'.$loginerr.'</span>';
      }
    ?>
    </form>

  </div>
</div>

---------------- pdo的代码在-------------

之下
<?php
class User {
    protected $pdo;

    public function __construct($pdo){
        $this->pdo=$pdo;
    }

    public function checkInput($var){
        $var=htmlspecialchars($var);
        $var=trim($var);
        $var=stripslashes($var);
        return $var;
    }


    public function login($email, $password){
        //$e=$email;
        //$pwd=$password;
        $stmt=$this->pdo->prepare("SELECT userid, username, display_name, last_login FROM user WHERE email=:email and password=:password");
        $stmt->bindParam(':email',$email,PDO::PARAM_STR);
        $stmt->bindParam(':password',$password,PDO::PARAM_STR);
        $stmt->execute();
        $user=$stmt->fetch(PDO::FETCH_ASSOC);
        $count=$stmt->rowCount();
        echo $email."<br>"; echo $password."<br>"; echo$count;
        if($count > 0)
        {   
            $_SESSION['username']=$user->username;
            $lastlogin=$user->last_login;

            if(strlen($lastlogin)<=0)
            {
                // if last_login is null then store current date and time as session
                $_SESSION['last_login']=date('l, d F, Y : H:i:s');
                $last_login=$_SESSION['last_login'];
            }
            else{ $_SESSION['last_login']=$last_login; }
            $username=$_SESSION['username'];
            $_SESSION['displayname']=$user->display_name;
            //header('Location:home.php');

        }
        else
        {   //echo 'error'; 
         return false; 

        }
    }

  }

?>

任何帮助都将受到高度赞赏。起初我在网站托管上遇到了致命的错误,而在localhost上工作了。在3-4张支持票后,我自己开始工作了。我尝试了很多,但它让我感到困惑。在localhost上一切正常。请检查屏幕截图...它适用于localhost ...

  1. https://www.awesomescreenshot.com/showImage?img_id=3164433
  2. https://www.awesomescreenshot.com/showImage?img_id=3163240
  3. 谢谢。

0 个答案:

没有答案