我想检测用户使用我的网站(php)时是否在用户的浏览器中启用了java。
如果启用了java,则在网站上加载某个div,如果没有其他div加载的话。
我执行以下操作:
PHP头文件中的:(所以加载它会检查是否启用了java)
<?php $no_java=0;?>
<noscript><input type="image" src="whatever.jpg" id="java_checker" value="1"></noscript>
这是1px x 1px透明图像,无法看到,但它比可以看到的文本框更好。
if(java_checker==1){
$no_java=1;
}else{
$no_java=1
}
我已经用PHP编程了几个月了。我知道if(java_checker==1)
不对,但我不知道如何在不提交表格的情况下检查价值......
任何人都可以告诉我该怎么做? value="<?php $no_java=1;?>"
不好,因为php部分似乎无论<noscript>
标签都加载:(
有什么想法吗?或者任何其他想法我怎么能“告诉”php没有java所以做任何事......
答案 0 :(得分:2)
PHP是服务器端语言,而Java小程序在浏览器内运行。
这意味着 PHP无法直接检测 useragent是否安装了Java插件。理论上,它可以,如果有相关的HTTP请求标题,但没有。
最好的情况是,PHP可以发出JavaScript,然后在浏览器中运行一些测试,并通过 AJAX 向服务器报告。
有关详细信息,请参阅How can I detect the Java runtime installed on a client from an ASP .NET website?。
答案 1 :(得分:1)
你采取了错误的方式。
不是在PHP中你必须检测是否启用了 Javascript ,而在JS本身。
只需让你的PHP始终启用,但如果JS也存在,那就让它需要一些工作。易
答案 2 :(得分:1)
首先,我认为您在Java和JavaScript之间感到困惑。 <noscript>
标签处理缺少JavaScript,但我想这种方法也适用于“Java applets”。
这里的关键思想是,PHP对浏览器的唯一信息是“用户代理”字符串。这指定了这是哪个浏览器。使用或不使用Javascript使网站正常工作的过程称为“优雅降级”。你可以在其他地方读到它。
PHP有 no 方式来判断JavaScript是否已启用。最简单的解决方法是创建一个测试页面,如下所示:
<html>
<script type="text/javascript">
window.location.href = "myapp.php?js=enabled";
</script>
<noscript><a href="myapp.php?js=disabled">Click here to continue</a></noscript>
这将允许您说$javascript_enabled = $_GET['js'] === 'enabled';
并确定是否启用了JS。
请注意,这是构建应用程序的非常错误的方法。你需要考虑这两种情况。