2017-10-24 6 views
0

ここでは、ログイン後にhome.phpにリダイレクトするためにヘッダ機能を使用していますが、ヘッダ機能がそのページにリダイレクトされていません。ローカルコンピュータで同じコードを実行しても、うまく動作します。ヘッダー機能がhome.phpにリダイレクトされないのはなぜですか?

<?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..."; 
} 
} 
} 
?> 
+0

これはいつ動作しますか?ログや画面にエラーがありますか? – Shadow

+0

ob_start()を削除してみてください。 –

+0

'// SQLインジェクションを防止する' <---これはfalseです。あなたはSQLインジェクションにオープンしています。また、プレーンテキストパスワードを使用しているように見えますが、これは大きなセキュリティ上の欠陥です。 – chris85

答えて

0

ISSET()が既に存在を調べるので、あなたは!= "" 行5には必要ありません

<?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 

?> 
1

、このコードを使用してコードを試してみてください。そこにあるかそうでないか。

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

!isset()を使用すると、反対の結果も得られます。

関連する問題