我喜欢将指纹作为php变量,我得到以下内容,但不想工作。
<p>fingerprint2: <strong id="fp2"></strong></p>
<script src="/fingerprintjs2/fingerprint2.js"></script>
<script>
var fp2 = new Fingerprint2();
fp2.get(function(result) {
console.log(result);
$("#fp2").text(result);
});
</script>
$myphpvar = "<script>document.write(fp2.get());</script>";
echo $myphpvar;
这根本不是PHP的工作方式。PHP 无法处理客户端 JavaScript。如果你想访问PHP中的客户端信息,那么你可能应该把它放在一个表单中,然后用PHP发布到另一个页面。有很多关于PHP表单的好教程,比如这个。
Javascript 在 PHP 完成后运行。客户端与服务器端代码。我过去通过在渲染图像的 PHP 文件中运行 PHP 来解决这个问题。此方法通常称为像素跟踪。
以下是基础知识,您需要将 Javascript 中的变量传递给渲染图像的 PHP 文件:
document.write("<img src=fingerprint.php?x="+x+"&y="+y+" width=1 height=1>");
在上面的例子中,它将Javascript变量x和y传递给PHP镜像。
然后指纹.php脚本如下所示:
<?php
header("Content-type: image/png");
session_start();
$x = $_REQUEST['x'];
$y = $_REQUEST['y'];
$_SESSION['x'] = $x;
$_SESSION['y'] = $y
// SHOW THE IMAGE
$im = imagecreatefrompng("fingerprint.png");
imagepng($im);
imagedestroy($im);
?>
png 图像可以是您想要的任何内容,因为它只是最终屏幕上的 1 x 1 图像。你现在在PHP中有了Javascript变量。当代码启动会话时,您可以将变量写入会话,稍后在另一个脚本中收集它们,或者将它们写入数据库并稍后恢复。尝试使用我的简单示例以确保您使其正常工作,然后从那里扩展。
方法可以从 JavaScript 发送数据回到服务器端
- 设置一个 cookie 并在下一个请求中读取它
- 通过在URL的查询中添加指纹来注入脚本/IMG/iframe标签(但不使用document.write)来请求更多内容
- 发出 AJAX 请求
- 向页面上的表单添加隐藏输入 - 要求用户使用该表单导航出页面