セッション設定が正しく機能しない理由を教えてください。次のように、 index.phpファイルに単純なフォームがあります。
<?php
session_start();
$_SESSION['uid'] = 'test';
?>
<!DOCTYPE HTML>
<html>
<body>
<form method="POST" action="validate.php">
Password: <input type="text" name="name" value="" />
<input type="submit" value="Submit" />
</form>
</body>
</html>
次のようなvalidate.phpファイルもあります。
<?php
session_start();
$err="You Have to Insert The Password to Get into Page";
if(($_POST['name']) == $_SESSION['uid']){
header ("Location: target.php");}
else{ echo $err; }
?>
最後に、target.phpページは次のようになります
<?php
session_start();
?>
<!DOCTYPE HTML>
<html>
<body>
<img src="session.jpg">
</body>
</html>
今私の問題は、(..localhost/PHP/Session_3/validate.php) のようなブラウザーのアドレスバーから直接 validate.php または target.php の URL を実行すると、まだターゲットページにアクセスできることです! なぜこれが起こっているのか教えてください。これを防ぐために、より良い isset() 関数を設定するにはどうすればよいですか? お時間とコメントありがとうございます