我使用javascript获取了我网站上访问者的一些基本信息。
var userinfo = "";
//printing user info
$.get("http://ipinfo.io", function (response) {
alert("IP: " + response.ip);
alert("Location: " + response.city + ", " + response.region);
alert(JSON.stringify(response, null, 4));
userinfo = (JSON.stringify(response,null,4)); //saving json in js variable (not working, it says undefined)
}, "jsonp");
然后我想在我的PHP变量中访问这个值:
<?php
echo $getuserinfo ; // How to store JS var here in this php var?
?>
JS变量值没有被保存,我做错了什么? 如何在JS变量中存储JS变量值?
答案 0 :(得分:1)
您可以创建一个stat page / api,您可以通过javascript进行ajax调用。
$.ajax({
type: "POST",
url: '/setstats.php',
data: {userdata: userinfo},
success: function(){
console.log("Userdata send");
},
dataType: "json"
});
这将首先在页面初始加载时提供,但您现在可以将其保存在会话中以供下次请求使用。
答案 1 :(得分:1)
您正在使用jQuery.get
方法。
此方法支持名为Data
的参数data
Type: PlainObject or String
A plain object or string that is sent to the server with the request.
将它发送到服务器http://ipinfo.io
后,它在$_GET
数组中的被调用脚本(index.php或默认情况下)中可用。
如果您发送data: {var1: value1, var2: value2}
,则会$_GET["var1"] and $_GET["var2"]
只需发送data: userinfo
并在php中执行var_dump($_GET)
并检查您的内容
答案 2 :(得分:1)
所以我通过使用PHP的PHP版本来解决它:
function ip_details($ip) {
$json = file_get_contents("http://ipinfo.io/{$ip}");
$details = json_decode($json);
//echo $ip;
return $details;
}
$details = ip_details($userIp);
感谢大家。