我使用此代码禁止直接访问php文件
EditTextReference
我的问题是我需要以这种方式调用php
if (__FILE__ == $_SERVER['DOCUMENT_ROOT'].$_SERVER['PHP_SELF']){
die("Direct access forbidden");
}
它还会返回xmlhttp.open("GET","getverse.php",true);
错误。
在不允许从浏览器直接访问php文件的同时,如何允许它调用php文件?
谢谢
答案 0 :(得分:0)
我不确定只是一个PHP文件,还是使用任何Framework或CMS。
但是您可以尝试
if (__FILE__ == $_SERVER['DOCUMENT_ROOT'].$_SERVER['PHP_SELF'] && !isset($_GET['ajax'])){
die("Direct access forbidden");
}
使用
调用此文件xmlhttp.open("GET","getverse.php?ajax=1",true);
答案 1 :(得分:0)
您可以执行以下操作:
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {...}
但是请记住,您仍然可以使用cURL欺骗任何标头:
curl_setopt($ch,CURLOPT_HTTPHEADER,array("X-Requested-With : XMLHttpRequest"));
(但至少应该注意直接在浏览器中访问PHP文件)。