我正在开发一个在Windows上的Apache服务器上运行的网站(至少目前)。我的网站目录由HTML和PHP文件组成。我们的想法是将可访问的网页作为HTML文件,每当我需要使用动态内容时,我将使用Javascript和AJAX请求,以便从服务器请求我需要的内容。将对PHP脚本进行AJAX请求,这些脚本具有专用于它们的目录。因为我想在自己的单元中保持一切井井有条,这就是我这样做的方式(尽量避免使用内联PHP)。
公共HTML文件不需要任何特殊设置。但是,当涉及到管理员特定的HTML文件时,我想对它们做一些非常具体的事情。我不想编写一些内联PHP代码来在管理员网页(HTML文件)上以管理员身份验证用户,我想在用户尝试打开管理员特定的HTML文件时执行身份验证脚本,以检查用户是否可以打开文件。
简而言之,这是我的问题:如何在打开HTML文件时运行PHP脚本?我需要在Apache服务器上执行哪种配置,或者我可以简单地以某种方式使用PHP ?
答案 0 :(得分:1)
您可以尝试使用iframe
/ embed
代码
OR:
<html>
<head>
<script src="js/jquery.min.js"></script>
<script>
$(document).ready(function(){
$.ajax({
url: 'php_File_with_php_code.php',
type: 'GET',
data: 'parameter=some_parameter',
success: function(data) {
$('#thisdiv').html(data);
}
});
});
</script>
</head>
<body>
<div id="thisdiv"></div>
</body>
</html>
答案 1 :(得分:1)
如果您提供静态HTML文件,则无法阻止用户在不使用PHP等编程语言(例如.htaccess
)的情况下访问它。但是有多种方法可以处理您的情况:
.htaccess
的PHP独立服务器身份验证。 .htaccess
是一个apache服务器身份验证配置文件。您可以使用它来阻止用户访问您的站点(因此,根本无法访问HTML文件)。尝试访问该页面时,会出现一个弹出窗口,用户必须输入其凭据。它完全独立于您的业务逻辑,并且必须在.htpasswd
文本文件中设置允许的用户。无法使用具有.htaccess
服务器身份验证的现代数据库依赖用户管理。使用此解决方案,您也无法使用HTML表单登录。我只推荐此解决方案用于测试目的而不是现代网站。如果您的PHP后端是完整构建的,我会选择解决方案1
。如果您正在检查后端界面上的用户输入,则用户无法对您的HTML执行任何操作。这意味着,您提供所有HTML,但在加载数据之前不要将其显示给用户。您可以在加载时显示spinner。这是一些基本代码:
JavaScript(jQuery):
$(document).ready(function() {
$.ajax({
url: 'administration.php',
method: 'GET'
success: function(response) {
$('input.username').val(response.username);
// ( ... )
$('.administration').fadeIn('fast');
},
error: function() {
window.location.href = 'index.php';
}
});
});
HTML:
<body>
<div class="administration">
<label>Username
<input type="text" class="username" />
</label>
</div>
</div>
CSS:
.administration {
display: none;
}
答案 2 :(得分:0)
您可以简单地将服务器(APACHE)配置为将扩展名为.html的文件视为常规PHP文件。 方法如下:如果您的项目根目录中没有.htaccess文件,请创建它。 然后在.htaccess文件中添加以下行:
# TELLS APACHE TO HANDLE ALL FILES WITH .html or .htm EXTENSIONS AS PHP FILES.
AddHandler x-httpd-php .html .htm
但是,根据您的服务器,以上可能无效;在这种情况下,您可以尝试以下之一:
# TELLS APACHE TO HANDLE ALL FILES WITH .html or .htm EXTENSIONS AS PHP FILES.
AddHandler php-script .php .html .htm
或者这个:
# TELLS APACHE TO HANDLE ALL FILES WITH .html or .htm EXTENSIONS AS PHP FILES.
AddType application/x-httpd-php .htm
AddType application/x-httpd-php .html
但是,第一个变体可能最适合您。我希望这有帮助。祝你好运,我的朋友。