禁用对php页面的直接访问,但允许从特定页面访问
我有一个表单,用于收集数据并将其发送到process_form.php。该文件执行各种功能,但需要用户输入数据才能工作,如果在没有用户数据的情况下执行,可能会产生一些问题。 我不希望有人可以键入www.mysite.com/process\u form.php,但我希望仅当引用的url为www.mysite.com/compile.php时才允许他访问禁用对php页面的直接访问,但允许从特定页面访问,php,permissions,Php,Permissions,我有一个表单,用于收集数据并将其发送到process_form.php。该文件执行各种功能,但需要用户输入数据才能工作,如果在没有用户数据的情况下执行,可能会产生一些问题。 我不希望有人可以键入www.mysite.com/process\u form.php,但我希望仅当引用的url为www.mysite.com/compile.php时才允许他访问 可能吗?通过使用$\u SERVER['HTTP\u REFERER']是可能的,但是请注意使用此变量,因为它可能会被操纵并且不可靠。从php.
可能吗?通过使用$\u SERVER['HTTP\u REFERER']是可能的,但是请注意使用此变量,因为它可能会被操纵并且不可靠。从php.net: 将用户代理引用到的页面(如果有)的地址 当前页面。这是由用户代理设置的。并非所有的用户代理都会这样做 设置此选项,一些选项提供将HTTP_REFERER修改为 特色。简言之,它真的不可信 我建议您编辑process_form.php,检查函数所需的输入数据是否存在。如果您有GET表格,您可以使用:
if(!empty($_GET['myFormFieldName'])) {
// process
}
或者如果使用POST:
if(!empty($_POST['myFormFieldName'])) {
// process
}
您应该使用会话来验证用户是否通过正确的过程到达最后一页