我有一个前端的php文件。在这个文件中有几种形式。
<form name="add3" method="post" id="add3" name="add3" action="add_exec.php" role="form">
</form>
现在您可以看到 add_exec.php 。我希望这个文件不能直接执行。
我不想使用 .htaccess 来实现这一目标。
我们还有什么办法可以防止直接执行add_exec.php
文件。
由于
编辑:
我不是在寻找htaccess的答案。如果我的文件在表单操作属性中,那么它将被视为包括或不包含?如果不是那么我怎么能阻止执行。
答案 0 :(得分:2)
关于请求类型的全部内容:
在add_exec.php的顶部检查请求方法:
if ($_SERVER['REQUEST_METHOD'] != 'POST')
exit('No access!');
或者:
if (!isset($_POST['specific_element_from_form']))
exit('No access!');
答案 1 :(得分:1)
您可以通过修改Web服务器配置文件来阻止访问Web服务器中托管的资源(文件,图像,js等)。在Apache Web服务器中,可以使用apache2.conf或.htaccess文件来完成。
<Files add_exec.php>
Order allow, deny
Deny from all
</ Files>
如果它不受Web服务器的限制,可以从下面的直接资源地址访问它。 http://example.com/add_exec.php
但是你的场景,POST数据应该收到add_exec.php,它应该只防止GET方法。因此,您可以检查它是GET还是POST,然后处理您的表单数据。
在你的add_exec.php文件中
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
exit();
}
// process your form