我可以使用PHP可以识别的JavaScript创建变量吗?

zec*_*ude 2 javascript php variables

我有一系列PHP语句,如果启用了javaScript,我只想运行它.

if($js_enabled == 'yes') {
   //Run a series of PHP statements
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我想用javaScript创建$ js_enabled变量.因此,如果启用了javaScript,则将创建该变量并运行PHP语句,但如果未启用javaScript,则永远不会创建该变量,并且不会运行PHP语句.

如何使用PHP可以识别的JavaScript创建变量?

Gor*_*don 6

你可以做

$browser = get_browser();
if ($browser['javascript'] == 1) {
    // your code here
}
Run Code Online (Sandbox Code Playgroud)

请阅读文档以get_browser获取警告,尤其是

注意:为了使其正常工作,php.ini中的browscap配置设置必须指向系统上browscap.ini文件的正确位置.browscap.ini不与PHP捆绑在一起,但您可以在此处找到最新的»php_browscap.ini文件.虽然browscap.ini包含许多浏览器的信息,但它依赖于用户更新来保持数据库的最新状态.该文件的格式是相当不言自明的.

还要检查评论中给出的链接get_browser:


编辑正如您在评论中正确指出的那样,以上内容不会告诉您JavaScript 是否已启用,而只是浏览器是否能够运行它.从服务器端发现客户端是不可能的,因为服务器端首先运行.如果有的话,请提供页面通知服务器端,例如@ mck89建议或只是设置一个cookie,您可以在每个后续请求中阅读.

但一般来说,如果您的网站需要启用JavaScript,您只需添加一条消息即可告知用户此要求,例如:

<noscript>This page requires JavaScript to run properly</noscript>
Run Code Online (Sandbox Code Playgroud)

换句话说,不要从PHP检查.只需设置浏览器可能使用的每个变量,如果启用了JavaScript并考虑使用优雅降级或渐进增强.