禁止直接访问php页面,但允许从特定页面到达访问权限

时间:2012-04-01 16:05:04

标签: php permissions

我有一个表单收集数据并将其发送到process_form.php这个文件做各种功能但需要用户输入数据才能工作,如果执行没有用户数据可能会产生一些问题。 我不希望有人可以输入www.mysite.com/process_form.php,但我希望仅在引用网址为www.mysite.com/compile.php时才允许他访问 可能的?

2 个答案:

答案 0 :(得分:1)

通过使用$ _SERVER ['HTTP_REFERER'],然而可能会被警告使用此变量,因为它可以被操纵并且不可靠。来自php.net:

  

将用户代理引用到的页面地址(如果有)   当前页面。这是由用户代理设置的。并非所有用户代理都会   设置这个,有些提供修改HTTP_REFERER的能力   特征。简而言之,它无法真正被信任。

我建议你编辑你的process_form.php来检查函数所需的输入数据是否存在。如果你有一个GET表格,你可以使用:

if(!empty($_GET['myFormFieldName'])) { 
    // process
}

或使用POST:

if(!empty($_POST['myFormFieldName'])) {
    // process
}

答案 1 :(得分:0)

您应该使用会话来验证用户是否已通过正确的流程到达最后一页。