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