我试图通过在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时)?
答案 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==');
?>