此问题在此处已有答案:
Checking if form has been submitted - PHP(9个回答)
19天前关闭
我有一个php文件说**“check.php”在我的网站,它是执行时,提交一个表格。
假设我的网站是”myweb.com“**,php文件在目录“PHP”中
我想阻止直接URL访问“check.php”文件,即.如果任何人输入url“* myweb.com/PHP/check.php *”,那么php文件不应该被执行,它应该返回一个错误消息。
我试图通过在.htaccess中设置一个规则来阻止访问,但即使我试图提交表单,它也会阻止php。
.htaccess规则:
RewriteEngine on
RewriteCond %{THE_REQUEST} \.php[\ /?].*HTTP/
(.*)\.php$ /index.html [L]
字符串
有什么可能的办法做这件事吗?
9条答案
按热度按时间aiazj4mn1#
你可以用PHP
字符串
j91ykkif2#
将以下代码放在check.php的顶部:
字符串
如果用户通过直接输入URL来访问check.php,它会将他们重定向到您想要的位置。
k5ifujac3#
在Root/.htaccess中尝试以下操作:
字符串
如果check.php没有被form post方法访问,则返回404 not found。
hmtdttj44#
我尝试了选择的答案,但在实现它时遇到了一些问题,特别是如果我想使用GET和 AJAX 从PHP文件中的函数返回值。
在对其他解决方案进行了相当广泛的研究(以及我自己的一点测试)之后,我提出了以下代码:
字符串
我发现上面的代码可以按照我想要的方式工作,我不认为它会像其他答案那样在多个浏览器中出现任何问题。我也不认为它会有任何安全问题,但我可能是错的(请告诉我,如果我是(为什么)),我是相对新的网络编程。
只需在您想要阻止直接URL访问的每个文件的顶部添加该代码(在所有内容之前,甚至是requires,includes和session_starts),您就可以开始了。
shstlldc5#
这是Google在PHP示例中使用的
字符串
k4ymrczo6#
字符串
lxkprmvk7#
这个问题有很多答案,但我做了这样的事情。
字符串
p3rjfoxz8#
试试这个。在check.php的顶部过去
字符串
当直接在URL中访问文件时,将显示“拒绝访问
1zmg4dgp9#
在我的例子中, AJAX 有一个问题。
对我很有效
字符串