PHP检测使用图像请求禁用JavaScript

时间:2014-06-30 11:49:52

标签: javascript php

我试图通过在noscript元素中放置图像来不显眼地检测何时禁用JavaScript。我很确定自己是在正确的道路上,虽然我不确定我应该回应什么数据。

<noscript><img alt="" src="images/noscript.gif" /></noscript>

下面的base64编码数据只是1x1透明GIF图像。

 header('HTTP/1.1 200');
 header('Content-type: image/jpeg');
 echo 'data:image/gif;base64,R0lGODlhAQABAIAAAP8A/wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';

我需要做些什么来确保我可以让PHP拦截图像请求并成功地在页面上显示图像(显然在禁用JavaScript时)?

3 个答案:

答案 0 :(得分:2)

<noscript><img alt="" src="path_to_script.php"/></noscript>

脚本:

header('HTTP/1.1 200');
header('Content-type: image/gif');
echo base64_decode('R0lGODlhAQABAIAAAP8A/wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');

答案 1 :(得分:0)

您可以将src属性设为PHP文件的链接:

<noscript><img alt = "" src = "[stuff].php" /></noscript>

另外,我不知道PHP服务器是如何工作的,但是在Python TCPServers和UDPServer中,服务器由一个具有此handle()方法的类运行,该方法从客户端接收数据然后再发送数据。该数据可以完全独立于该链接的实际文件。

如果在PHP中这是相同的,那么你可以从images/noscript.gif获得一个链接的请求,甚至没有images/noscript.gif文件,然后只需从PHP文件发回数据。

答案 2 :(得分:0)

啊,我忘记了我可以在服务器上解码图像。关键是让客户端发出 HTTP请求,否则服务器无法识别,因此无法记录JavaScript被禁用。

<?php
header('HTTP/1.1 200');
header('Content-type: image/gif');
echo base64_decode('R0lGODlhAQABAIAAAP8A/wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
?>