1

ユーザーを認証する適切な方法は何ですか? のように、ログインしたユーザーだけが閲覧できるページを設定しますか?

これは機能しますか?

<?php
session_start();
if(!isset($_SESSION[username]) || empty($_SESSION[username]) || !isset($_SESSION[id]) || empty($_SESSION[id]))
{
session_destroy();
session_unset();
die('You\'re not authorized to view this page!');
}
?>

<?php
echo"Can I freely, and safely write my content here? Will it be properly authenticated with my code above?";
?>

しかし、私の質問は、上記のコードを使用する場合、コードの下にコンテンツを自由に追加できますか? そして、これを行うための他の良い方法はありますか?

私は別のコードを持っています

session_destroy();
header("Location: logout.php");
{and then I echo my content below; where logged in users can see}

しかし、一度それを行うと、ユーザーは以下のコンテンツを見ることができなくなるのでしょうか?

ありがとう!

4

1 に答える 1

1

あなたは正しいですが、あなたの戦略は少し冗長です。これがより簡単な方法です。

<?php
session_start();
if(empty($_SESSION['username'])) 
{
  echo "Not allowed."; // possible redirect to login page.
  exit; 
}

//Authenticated stuff here.

ログアウトするには、ユーザー名をクリアするだけです。

$_SESSION['username'] = "";

通常、内部 PHP セッション キャッシュのクリーンアップについて心配する必要はありません。PHP には、サーバーのバックグラウンドで実行される定期的なスクリプトがあり、それを処理します。

于 2013-08-25T02:10:31.913 に答える