【问题标题】:fingerprintjs2 to php variable指纹js2到php变量
【发布时间】:2016-03-21 18:53:55
【问题描述】:

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

【问题讨论】:

    标签: javascript php fingerprintjs2


    【解决方案1】:

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

    【讨论】:

    • 是的,我知道,可以发送 POST,但不喜欢以这种方式通过网络发送。
    【解决方案2】:

    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 图像。

    然后fingerprint.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 变量。当代码启动会话时,您可以将变量写入会话并稍后在另一个脚本中收集它们,或者将它们写入数据库并稍后恢复。试试我的简单示例,以确保它正常工作,然后从那里扩展。

    【讨论】:

    • 如果你有更多的代表,我会否决这个。使用 document.write 的理由很少,在这种情况下,它需要在执行之前阻止下载和执行一段复杂的 JavaScript。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-27
      • 2021-07-01
      • 2023-03-15
      • 2016-08-12
      • 2011-09-19
      • 2019-04-28
      相关资源
      最近更新 更多