Переменная fingerprintjs2 в php

Мне нравится получать отпечатки пальцев как переменную 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;

3 ответа

Существует множество способов отправки данных из JavaScript на сервер.

  • установить cookie и прочитать его в следующем запросе
  • запросить дополнительное содержимое, введя тег script / IMG / iframe (но не используя document.write), добавив отпечаток пальца в запрос URL
  • сделать запрос AJAX
  • добавить скрытый ввод в форму на странице - требует, чтобы пользователь вышел из страницы, используя форму

Это действительно совсем не так, как работает PHP. PHP не может обрабатывать JavaScript на стороне клиента. Если вы хотите получить доступ к информации на стороне клиента в PHP, то вам, вероятно, следует поместить ее в форму и опубликовать на другой странице в PHP. Есть много хороших учебных пособий по формам PHP, таких как этот.

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 на последнем экране. Теперь у вас есть переменные Javascript в вашем PHP. Когда код запускает сеанс, вы можете записать переменные в сеанс и затем собрать их в другом скрипте, или записать их в базу данных и восстановить позже. Попробуйте на моем простом примере убедиться, что он работает, а затем расширяться.

Другие вопросы по тегам