2016-12-17 40 views
0

我不明白爲什麼每列都有很好的結果,但屏幕列內有代碼,而不是實際的SCREEN SIZE(代碼結果)。PHP - Javascript結果在MySQL內

<?php 

@$data = $_SERVER['HTTP_USER_AGENT']."|";  
@$data.= $_SERVER['HTTP_CF_CONNECTING_IP']."|";    
$width = " <script>document.write(screen.width); </script>"; 
$height = " <script>document.write(screen.height); </script>"; 

$data.=$width; 
$data.=$height;  
$finz = explode("|",$data);  
$ag = $finz[0];  
$ip = $finz[1];  
$sc = $finz[2];  
$query1 = $db->prepare("INSERT INTO `checks` (user,type,ip,screen,agent) values (:user,:type,:ip,:screen,:agent)");  
$query1->execute(array(  
    'user' => $USER['username'], 
    'type' => 'Red Flower', 
    'ip' => $ip, 
    'screen' => $sc, 
    'agent' => $ag 
    ));   
$row2 = $query->fetch(); 

?> 

有人可以告訴我如何讓代碼插入JavaScript輸出的值,而不使用POST AJAX/JQuery等?

回答

1

直到您的模板到達客戶端,纔會評估嵌入式JavaScript。這不是PHP解釋器理解的。這只是一個字符串。您必須使用JavaScript執行此代碼並將其發送回服務器,否則沒有其他辦法。

在對數據庫執行查詢之前,您需要將包含評估JavaScript結果的請求發送回服務器。

我意識到這是你試圖避免的。

+0

非常感謝您,如果您可以請告訴我,我該怎麼做?我很樂意收到代碼。 – pythy