2017-08-04 13 views
0

ログインスクリプトを作成中です。ログインして正しいページに移動するのに問題があります。現在、ユーザーはログインフォームを送信します。ログインフォームは、セキュリティで保護されたページに送信されます。このページでは、以下のようにセッションの一致をチェックしますが、あなたはそれがユーザーであるとし、「安全な」のページに誘導するかどうかを確認、検証した後に見ることができるようにセッションが作成されず、ログインが発生しません。

Login.php

session_start(); 
include("clientarea/inc/config.php"); //Establishing connection with our database 

$error = ""; //Variable for storing our errors. 
if(isset($_POST["login"])){ 
if(empty($_POST["email"]) || empty($_POST["password"])){ 
    $error = "Both fields are required"; 
} else { 
// Define $email and $password 
    $email = $_POST['email']; 
    $password = $_POST['password']; 

// To protect from MySQL injection 
    $email = mysqli_real_escape_string($connection, $email); 
    $password = mysqli_real_escape_string($connection, $password); 
    //$password = md5($password); 

//Check username and password from database 
    $stmt = "SELECT * FROM users WHERE email='$email' and password='$password'"; 
    $result = mysqli_query($connection, $stmt); 
    $row = mysqli_fetch_array($result,MYSQLI_ASSOC); 

//If username and password exist in our database then create a session. 

    if(mysqli_num_rows($result) == 1){ 
     $_SESSION['email'] = $login_user; // Initializing Session 
     header("location: clientarea/index.php"); // Redirecting To Other Page 
    } else { 
     $error = "Incorrect username or password."; 
    } 
} 
} 

-

は、ここに私のコードです。ここで

は今、確かユーザーがそれ以外の場合は、ホームページにリダイレクトするにはログインされていることを確認するために「安全な」のページの上部にauth.php実行されauth.php

include('inc/config.php'); 
session_start(); 
$user_check = $_SESSION['email']; 

$sql = mysqli_query($connection, "SELECT email FROM users WHERE email='$user_check' "); 

$row = mysqli_fetch_array($sql,MYSQLI_ASSOC); 

$login_user = $row['email']; 

if(!isset($user_check)) 
{ 
header("Location: http://localhost/findpt/index.php"); 
} 

です。今私はauth.phpファイルを削除した場合、私はまっすぐに '安全な'ページに行くが、その場所でそれはホームページに私を起動します。

私は$ _SESSION ['email']をエコーすると何も受け取りません。

答えて

0

あなたの投稿を正しく読んでいれば、login.phpはそれらをセキュアページ(auth.php)にリダイレクトするフォームです。

login.phpを見ると、$ login_userがこれまでに初期化されているようには見えません。つまり、$ _SESSION ['email']に割り当てられていない変数を割り当てています。

また、ログインの重複を確認するためにlogin.php if文に別の条件を作成して、Pの& Qをカバーすることもできます。

関連する問題