2016-10-02 11 views
0

私がURLに入力した場合、私はhttp://localhost/demo/home.php)itがloggedin.Itが見つからないのindex.phpや表示ページにリダイレクトされなければならない示す(セッションを作成し、logout.phpでセッションを破壊するが、している。phpでログインとログアウトのセッションを設定する方法は?

私がログインしているachieving-だ何私の資格情報でログインでき、ページがhome.phpにリダイレクトされています。home.phpから私はログアウトリンクを持っています。そのページをクリックしてindex.phpにリダイレクトしていますが、もしあれば入力されたhome.php が、この中で私を助けてください... LOGGEDIN示す。

のindex.php

session_start(); 

$username = $_POST['username']; 
$password = $_POST['password']; 

$sel_user = "SELECT * FROM admin WHERE Username='$username' and Password='$password'"; 
$run_user = mysqli_query($conn, $sel_user); 

$check_user = mysqli_num_rows($run_user); 

if($check_user>0){ 

echo "<script>window.open('home.php','_self')</script>"; 
$_SESSION['user_email']=$username; 

} 

else { 

$msg="Username and Password is incorrect."; 


} 

Home.php

<h2>Home page</h2> 
<a href="logout.php">logout</a> 

logout.php

 <?php 
     session_start(); 
     if(session_destroy()) 
       { 
       header("Location: index.php"); 
       } 
       ?> 
+0

文法の基本的な例を示すために私のコンピュータを私の目の前に置いていません。しかし、ただあなたのlogout.phpを見て、私はあなたがセッションを終了しているのを見ていないよ。私はちょうどifステートメントを見ています。それを上に上げるには、if文の前に実際にセッションを開始するのが見えます。私は自分のプロジェクトに、ログインとログアウトの2つのページを持っています。 - 私はあなたのlogout.phpを理解していないので、これだけを言っています。あなたがそれまでに助けられなかったら私は少しでも私のコンピュータにいます。 – MattOlivos

+0

助けてくれてありがとうMr.MattOlivos私のソリューションZHorvat Thatsから私のために働いて –

+0

笑、私に感謝しないでください。私は正直に何もしなかった。良いものを持っている。 – MattOlivos

答えて

3

あなたhome.phpユーザーがログインされているかどうか確認する必要があります。上部にはifという文を追加するだけです。また

if (isset($_SESSION['user_email']) == FALSE){ 
    header("Location: index.php"); 
} 

あなたlogout.phpだけでセッションを作成し、それが破壊されていますかどうかを確認する:のような

何か。そのためにあなただけの可能性:このVARはもう宣言されていないので、

unset($_SESSION['user_email']); 

とあなたのhome.phpだけで、リダイレクトします。あなたのログアウトページで

+0

クール!!! ..ホームページの条件が不足しています。私を助けてくれてありがとう。完璧に働いています。 –

+0

出口もありません。あなたのヘッダーメソッドの後。しかし、投票した – KDOT

+0

うん。私が必要とするより多くの情報..もし5ページ以上ある場合。すべてのページに条件が書いたらどうすればいいですか? –

1
あなたのホームページで

if (!isset($_SESSION['user_email'])){ 
    header("Location: index.php"); 
} 

<?php 
unset($_SESSION['user_email']); 
header("Location: index.php"); 
?> 

また、射出SQL

$sel_user = "SELECT * FROM admin WHERE Username='".mysqli_real_escape_string($conn, $username)."' and Password='".mysqli_real_escape_string($conn, $password)."'"; 

を避け、受信したデータを確認するためにMySQLのリクエストでmysqli_real_escape_string($conn, $variable)を使用あなたのPOSTメソッドをデータベースに追加する前に。

+0

5ページ以上ある場合。すべてのページに条件が書いたらどうすればいいですか? –

+0

はい、アクセスを制限したい各ページにスクリプトが必要です。 – Pierre

+0

私の例をmysqli_real_escape_string()用に使用します。メッセージを編集するだけです – Pierre

関連する問題