阻止直接执行php文件

时间:2016-01-13 04:32:38

标签: php

我有一个前端的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的答案。如果我的文件在表单操作属性中,那么它将被视为包括或不包含?如果不是那么我怎么能阻止执行。

2 个答案:

答案 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