header函数没有重定向到home.php,为什么?

时间:2017-10-24 04:32:17

标签: php

这里我使用header函数在登录后重定向到home.php,但是header函数没有重定向到该页面。即使我在本地计算机上运行相同的代码也能正常工作。

<?php
ob_start();
session_start();
require_once 'phpconnection.php';
// it will never let you open index(login) page if session is set
if ( isset($_SESSION['user'])!="" ) {
 header("Location:home.php");
 exit;
}
$error = false;
 if( isset($_POST['btn-logIn']) ) { 
// prevent sql injections/ clear user invalid inputs
 $email = trim($_POST['email']);
$email = strip_tags($email);
$email = htmlspecialchars($email);

$pass = trim($_POST['password']);
$pass = strip_tags($pass);
$pass = htmlspecialchars($pass);
// prevent sql injections / clear user invalid inputs
 if ( !filter_var($email,FILTER_VALIDATE_EMAIL) ) {
 $error = true;
 $errMsg = "Please enter valid email address.";
}
// if there's no error, continue to login
if (!$error) {
 $res=mysql_query("SELECT userId, userfName, userlName,userPassword FROM       userdata WHERE userEmail='$email'");
 $row=mysql_fetch_array($res);
 $count = mysql_num_rows($res); // if uname/pass correct it returns must be 1 row
 if( $count == 1 && $row['userPassword']==$pass  ) {
  $_SESSION['user'] = $row['userId'];
   header("Location:home.php");
 } else {
  $errMsg = "Try again...";
 }
}
}
 ?>

2 个答案:

答案 0 :(得分:1)

你不需要!=&#34;&#34;在第5行,因为isset()已经检查是否存在。它的存在与否。

if (isset($_SESSION['user'])){
    header("Location: home.php");
    exit;
} else {
    echo "something here";
}

您也可以使用!isset()来获得相反的结果。

答案 1 :(得分:0)

使用此代码尝试您的代码,

<?php
ob_start();
session_start();

if ( isset($_SESSION['user'])!="" ) {
 header("Location:home.php");
 exit;
}

require_once 'phpconnection.php';
// it will never let you open index(login) page if session is set

?>