2016-03-21 9 views
0

Ich mag Fingerabdruck als PHP-Variable zu bekommen, ich bekomme die folgen, aber nicht arbeiten wollen.fingerprintjs2 zu 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; 

Antwort

0

Das Javascript wird ausgeführt, nachdem das PHP abgeschlossen ist. Clientseitiger VS-Server-Seitencode. Ich habe dies in der Vergangenheit gelöst, indem ich PHP in einer PHP-Datei ausgeführt habe, die ein Bild rendert. Diese Methode wird oft als Pixel-Tracking bezeichnet.

Hier sind die Grundlagen, müssen Sie Ihre Variablen in Javascript zu einer PHP-Datei übergeben, die ein Bild macht: es übergeben Javascript Variablen x und y mit der PHP-Bild

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

Im obigen Fall.

Dann wird das fingerprint.php Skript wie folgt aussieht:

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

    ?> 

Das PNG-Bild, was Sie wollen sein kann, wie es nur ein 1 x 1 Bild auf dem letzten Bildschirm sein. Sie haben jetzt die JavaScript-Variablen in Ihrem PHP. Wenn der Code eine Sitzung startet, können Sie die Variablen in eine Sitzung schreiben und sie später in einem anderen Skript erfassen oder sie in eine Datenbank schreiben und später wiederherstellen. Versuchen Sie es mit meinem einfachen Beispiel, um sicherzustellen, dass es funktioniert, und erweitern Sie es von dort.

+0

Wenn Sie mehr rep hatten, würde ich dies ablehnen. Es gibt nur selten einen guten Grund, document.write zu verwenden, und in diesem Szenario ist das blockierende Herunterladen und Ausführen eines komplexen Bits von JavaScript erforderlich, bevor es ausgeführt wird. – symcbean

0

Das ist wirklich nicht, wie PHP überhaupt funktioniert. PHP kann clientseitiges JavaScript nicht verarbeiten. Wenn Sie Zugriff auf Client-seitige Informationen in PHP haben möchten, sollten Sie es wahrscheinlich in ein Formular einfügen und auf eine andere Seite in PHP stellen. Es gibt viele gute Tutorials zu PHP-Formularen wie this one.

+0

ja ich weiß, es ist möglich, senden Sie einen POST, aber nicht auf diese Weise, um es über das Netzwerk zu senden. – Theo

0

Es gibt viele Möglichkeiten, wie Sie Daten von JavaScript zurückschicken server

  • ein Cookie gesetzt und es in die nächste Anforderung
  • Anfrage weitere Inhalte durch die Injektion eines Skript/IMG/iframe-Tag lesen (aber nicht document.write) Zugeben des Fingerabdrucks in der Abfrage der
  • uRL
  • einen AJAX-Request
  • einen versteckten Eingang auf der Seite in ein Formular zu machen - muss den Benutzer aus der Seite navigieren über das Formular