0

我喜欢将指纹作为 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;
4

3 回答 3

0

这根本不是 PHP 的工作方式。PHP 无法处理客户端 JavaScript。如果您想在 PHP 中访问客户端信息,那么您可能应该将其放在一个表单中并将其发布到 PHP 中的另一个页面。有很多关于 PHP 表单的好教程,比如这个

于 2016-03-21T19:02:53.343 回答
0

有很多方法可以将数据从 JavaScript 发送回服务器端

  • 设置一个 cookie 并在下一个请求中读取它
  • 通过注入脚本/IMG/iframe标签(但不使用document.write)请求更多内容,在url的查询中添加指纹
  • 发出 AJAX 请求
  • 向页面上的表单添加隐藏输入 - 要求用户使用表单导航出页面
于 2016-03-24T23:37:12.860 回答
0

Javascript 在 PHP 完成后运行。客户端VS服务器端代码。我过去通过在呈现图像的 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 变量。当代码启动会话时,您可以将变量写入会话并稍后在另一个脚本中收集它们,或者将它们写入数据库并稍后恢复。尝试使用我的简单示例以确保您可以正常工作,然后从那里扩展。

于 2016-03-21T19:00:11.353 回答