Javascript 将JS2转换为php变量

Javascript 将JS2转换为php变量,javascript,php,fingerprintjs2,Javascript,Php,Fingerprintjs2,我喜欢把fingerprint作为php变量,我得到了下面的结果,但我不想工作 <p>fingerprint2: <strong id="fp2"></strong></p> <script src="/fingerprintjs2/fingerprint2.js"></script> <script> var fp2 = new Fingerprint2(); fp2.get(function

我喜欢把fingerprint作为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;
指纹2:

var fp2=新指纹2(); fp2.get(函数(结果){ 控制台日志(结果); $(“#fp2”)。文本(结果); }); $myphpvar=“document.write(fp2.get());”; echo$myphpvar;
Javascript在PHP完成后运行。客户端与服务器端代码。我过去通过在呈现图像的PHP文件中运行PHP解决了这个问题。这种方法通常被称为像素跟踪

以下是一些基础知识,您需要将Javascript中的变量传递给呈现图像的PHP文件:

document.write("<img src=fingerprint.php?x="+x+"&y="+y+" width=1 height=1>");
document.write(“”);
在上面的例子中,它将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变量。当代码启动会话时,您可以将变量写入会话并稍后在另一个脚本中收集它们,或者将它们写入数据库并稍后恢复。请尝试使用我的简单示例,以确保它能够正常工作,然后从那里展开。

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

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

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

是的,我知道,可以发送帖子,但不喜欢通过网络发送。如果你有更多的代表,我会投反对票。很少有好的理由使用document.write,在这种情况下,需要在执行之前阻止下载和执行复杂的JavaScript。