2016-03-21 3 views
0

Мне нравится получать отпечатки пальцев в качестве переменной php, я получаю следующее, но не хочу работать.fingerprintjs2 to php variable

<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; 

ответ

0

Javascript запускается после завершения PHP. Клиентский код стороне сервера VS. Я решил это в прошлом, запустив PHP в PHP-файле, который отображает изображение. Этот метод часто упоминается в отслеживании пикселей.

Вот основы, вы должны передать переменные в JavaScript, в PHP файл, который делает изображение:

document.write("<img src=fingerprint.php?x="+x+"&y="+y+" width=1 height=1>"); 

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

+0

Если бы у вас было больше репутации, я бы это сделал. Существует редко причина использовать document.write, и в этом сценарии требуется блокировка загрузки и выполнения сложного бита JavaScript до его выполнения. – symcbean

0

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

+0

Да, я знаю, можно отправить POST, но не нравится таким образом отправлять его по сети. – Theo

0

Есть много способов, вы можете отправить данные из JavaScript назад серверного

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