我可以检查是否从PHP启用了Java

时间:2011-09-10 17:10:21

标签: php javascript

我想检测用户使用我的网站(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所以做任何事......

3 个答案:

答案 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。

请注意,这是构建应用程序的非常错误的方法。你需要考虑这两种情况。