0

ログインしたユーザーのリンクを指定したかどうかを確認したいのですが、ログインせずにそのリンクにアクセスすると、データを保護するにはどうすればよいですか。つまり、未登録のユーザーが彼のプライベートメッセージを見ることができる可能性があるということです。だから私はウェブサイトを作っており、未登録のユーザーからのデータを保護したいと思っています。誰か助けてもらえますか?また、未登録のユーザーが上記のリンクを開こうとしたときに、リンクをログインページにリダイレクトする方法を教えてもらえますか?

4

1 に答える 1

0

通常、$_SESSION変数を使用して、ユーザーがログインしているかどうかを識別できます。これで、プロフィール ページには、プライベート メッセージ、リンク、メール アドレス、プロフィール リンクの編集など、不正なユーザーから保護したい多くの要素が表示されます。したがって、まず、ユーザーがログインしているかどうかを次の方法で確認します。

 if (isset($_SESSION['loggedIn'])) { // $_SESSION['loggedIn'] is the variable I set to //TRUE when user filled the registration/login form. Otherwise it is set to FALSE.
  echo 'user is logged in';
  //rest of code goes here
}

方法 1 -

次に、ユーザーが Web サイトのユーザーであるかどうかを確認します。MySql クエリを使用して確認します。まあ、あなたはそれのための関数を作ることができます。

function userisregistered(){ // 現在ログインしているユーザーの SQL データベースをチェックするコード // ユーザーが登録されている場合は TURE を返し、それ以外の場合は FALSE を返します }

ユーザーが登録されていない場合、別のページにリダイレクトされるようにしたいとおっしゃいました。あなたはそれを行うことができます-

 if(!isset($_SESSION['loggedIn'])){ //USER IS UNAUTHENTICATED --NO ACCESS
     header('Location: URL_of_page_you_want_user_to_redirect');
}

方法 2 -

ここで、ユーザーが Web サイトに対して認証されている場合、ユーザーは userX のすべてのプロファイル機能にアクセスできますが、それ以外の場合はアクセスできないと想定しています。したがって、その部分については、詳細をフェッチして DOM 要素を作成する ajax の利点を思いつくことができました。コードは次のようになります-

 if(isset($_SESSION['loggedIn']) and userisregistered()){ //USER IS AUTHENTICATED --ALL FEATURES
     echo '<ul>\n<li>item1</li>\n<li>item2</li>\n<li>item3</li></ul>';

}
else if(isset($_SESSION['loggedIn'])){  //USER IS AUTHENTICATED  --LIMITED FEATURES
     echo '<ul>\n<li>item1</li>\n<li>item2</li>\n</ul>';
}
else   //NO ACCESS
           header('Location: URL_of_page_you_want_user_to_redirect');
于 2012-08-19T21:14:51.853 に答える