你能告诉我为什么我的会话设置不能正常工作吗?我在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() 函数来防止这种情况发生?感谢您的时间和评论