2016-08-03 8 views
0

私は2つのPHPページを持っています。 1番目はログインフォーム用、2番目のPHPページは情報です。PHPを使用してページに直接アクセスする場合、ページをリダイレクトする方法は?

ユーザーが第1ページのリダイレクトからリダイレクトしてユーザーが直接アクセスするのを防ぐ場合は、2番目のPHPページにのみアクセス可能にします。

「form.php」という第1のphpファイルと、「info.php」という直接アクセスを禁止したい第2のphpファイルを考えてみましょう。

提案がありますか?

これまでのところ、(私のコードが機能していません)以下の私のコードを参照してください、私は白の空白のページを持って

Form.php

if(isset($_POST['submit'])){ 
    if((isset($_POST['username']) && $_POST['username'] != '') && (isset($_POST['email']) && $_POST['email'] != '')){ 
     $_SESSION["username"] = $_POST['username']; 
     $_SESSION["email"] = $_POST['email']; 

    $loginform = (strlen($_SESSION["username"])>0 && strlen($_SESSION["email"])>0); 
    if($loginform){ 
     $_SESSION['login'] = 1; 
     echo("<script>location.href = '/info/';</script>"); 
    } 
    } 
} 

することができますinfo.php

if(!isset($_SESSION['login']){ 
    echo("<script>location.href = '/login/';</script>"); 
} 
+0

ログインユーザーのみinfo.phpページにアクセスする必要がありますか? – user1234

+0

はい、ユーザーがすでにセッションを持っている場合 – User014019

答えて

1

スタートsessionlogin成功とはただlogin.phpheader befor sessionvariableを設定している場合。

login.php 

<?php 
session_start();// at top of page 
..... after login means all your query running 
if(querysuccess){ 
$_SESSION['loggedIn'] = 1; 
header('location:info.php'); 

} 


info.php// here check if session variable not 1 then redirect again to login.php 


<?php 
session_start(); 
if(!SESSION['loggedIn']){ 
header('location:login.php'); 
} 

else{ 

// just do whatever you want 
} 
?> 

あなたはinfo.phpでISSETを閉じることを忘れ解答フォームページ

<?php 
session_start();// should be at top 
if(isset($_POST['submit'])){ 
    if((isset($_POST['username']) && $_POST['username'] != '') && (isset($_POST['email']) && $_POST['email'] != '')){ 
     $_SESSION["username"] = $_POST['username']; 
     $_SESSION["email"] = $_POST['email']; 

    $loginform = (strlen($_SESSION["username"])>0 && strlen($_SESSION["email"])>0); 
    if($loginform){ 
     $_SESSION['login'] = 1; 
     echo("<script>location.href = '/info/';</script>"); 
    } 
    } 
} 

の上部に

startsessionを更新しました。ここでもセッションを開始する

+0

@ user12345私の更新ポストをコードでご覧ください。私のコードが動作していません – User014019

+0

@ User014019 $ _SESSION ["username"]と$ _SESSION ["email"]を設定したコードを表示してください – user1234

+0

@ User12345、私のポストの更新コードをご覧ください。 form.phpで定義されたユーザ名と電子メールの$ _SESSION – User014019

0

だけPHPでheader()メソッドを使用してください。

header('location:info.php'); 
0

form.phpページに、はいinfo.phpに進んでいる場合かどうかのフラグは、セッション中かどうかが存在することをinfo.phpでその最初のチェック後にセッション内のフラグを格納しよう。 form.phpにリダイレクトされない場合や、必要なものがあれば死ぬでしょう。 login.phpページで

関連する問題