我试图阻止直接访问以下文件(并且只允许访问提交表单的人),但是当我直接访问此文件时,而不是404我看到了文件正确。有人能说出这段代码有什么问题吗?
<?php
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
header("HTTP/1.0 404 Not Found");
} else {
if(isset($_POST['a'])){
switch ($_POST['a']){
case "1":
$var = "hey";
break;
case "2":
$var = "now";
break;
default:
$var = "other";
}
}
}
?>
<!doctype html>
<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
something
</body>
</html>
答案 0 :(得分:1)
在404标题后添加退出; 。
确保开启php标签前面没有任何内容&lt;?php
答案 1 :(得分:1)
您需要记住在拨打404后停止执行:
header("HTTP/1.0 404 Not Found");
exit(); // Stop Executing
如果您没有,您将发送404状态代码和 HTML,并且大多数浏览器仍然会在这种情况下显示HTML。 X
显示错误页面
创建一个错误屏幕并将其放入名为404.php的文件中,然后将代码更新为:
header("HTTP/1.0 404 Not Found");
include '404.php'; // Display the Not Found error
exit(); // Stop Executing