2017-07-16 4 views
0

ユーザーがアドレスバーにhome.php URLを入力すると、ホームページが開き、表示されます。 。URLを入力するとhome.phpが開きます。ユーザーがログインしている場合を除いてこの操作を防止します。

私は彼らがログインしている場合を除き、ホームページにアクセスできないようにしたい以下

は、私が試したものです:

<?php 

if (isset($_POST['btn_submit'])) { 
    $password = $_POST['txt_pass']; 
    if ($password == '123') { 
     header("Location: home.php"); //home.php 
    } else { 
     header("location: index.php"); 
    } 
} 

どのように私はそれを達成することができますか?

+0

$_SESSION["user"] = "true" ; 

あなたのコードは次のようになりますそのセッション/クッキーが存在するかどうかを確認します。もしそうでなければ、ユーザーにページを開かせない。 – Danielius

答えて

0

変数が設定されていない場合は、PHP関数definedを使用してページへのアクセスを制限することができます。

例えば

<?php defined('userstatus') OR exit('No direct script access allowed'); 
rest of your code here 

あなたのhome.phpでこれを使用して、セッションに入ったか、ページに渡されてきた変数を探します。

+0

定数または単純なセッションを使用する方が良いですか?このような方法で定数を使用したことはありません。 – Danielius

+0

既にセッションに保存している場合。 if(isset($ _ SESSION ['errors'])) { // do stuff else { exit( 'スクリプトに直接アクセスできません'); } – Timps

+0

まあ、私はセッションまたはクッキーはログイン後に常に作成されると信じています。 – Danielius

0
<?php 
    session_start(); 
    if(isset($_POST['btn_submit'] || !$_SESSION['userlogin'])) 
    { 
     $password=$_POST['txt_pass']; 
     if($password=='123') 
     {   
      $_SESSION['userlogin'] = true; 
      header("Location: home.php"); //home.php 
     }else{ 
      header("location: index.php"); 
     } 

    } 
    ?> 
0

あなたは、セッションを作ることができ、ユーザーがログインしている場合、それがbeです:ユーザーが使用セッション/クッキーに記録されますので、

<?php 
if($_SESSION["user"] = "true"){  
    if(isset($_POST['btn_submit']))  
    {   
     $password=$_POST['txt_pass'];   
     if($password=='123')   
     {    
      header("Location: home.php"); //home.php   
     }  
else {    
    header("location: index.php");   
    }  
    }  
}  
else {  
    header("/");  
}  
?> 
関連する問題