Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果PHP无法加载特定URL内容,如何使用jquery创建cookie_Javascript_Php_Jquery_Cookies - Fatal编程技术网

Javascript 如果PHP无法加载特定URL内容,如何使用jquery创建cookie

Javascript 如果PHP无法加载特定URL内容,如何使用jquery创建cookie,javascript,php,jquery,cookies,Javascript,Php,Jquery,Cookies,下面的PHP+jQuery代码缺少什么 $ip_address=$_SERVER['REMOTE_ADDR']; if(!isset($_COOKIE['isp'])){ $ispinfo=@file_get_contents("http://ipinfo.io/".$ip_address."/org"); if($ispinfo==FALSE){ echo '<script> $.get( "http://ipinfo.io/'.$ip_ad

下面的PHP+jQuery代码缺少什么

$ip_address=$_SERVER['REMOTE_ADDR'];    
if(!isset($_COOKIE['isp'])){
    $ispinfo=@file_get_contents("http://ipinfo.io/".$ip_address."/org");
    if($ispinfo==FALSE){
    echo '<script>
    $.get( "http://ipinfo.io/'.$ip_address.'/org", function( data ) {
       var d = new Date();
        d.setTime(d.getTime() + (24*60*60*1000));
        var expires = "expires="+d.toUTCString();
        document.cookie = "isp=" + data+ "; " + expires+ "; " + path=/";
    });

    </script>';
    } else {
    $isp_code_string = explode(" ",$ispinfo);
    $isp_code=$isp_code_string[0];
    $isp_name=str_replace($isp_code, '', $ispinfo);
    setcookie("isp", $isp_name, time()+10*365*24*60*60, "/");
    }
    } else {
    $isp_code_string = explode(" ",$_COOKIE["isp"]);
    $isp_code=$isp_code_string[0];
    $isp_name=str_replace($isp_code, '', $ispinfo);
    $isp_name="**".$isp_name;
    }
$ip\u address=$\u服务器['REMOTE\u ADDR'];
如果(!isset($\u COOKIE['isp'])){
$ispinfo=@file\u get\u contents(“http://ipinfo.io/“$ip_地址。”/org”);
如果($ispinfo==FALSE){
回声'
$.get(”http://ipinfo.io/“.$ip_地址”。/org”,函数(数据){
var d=新日期();
d、 设置时间(d.getTime()+(24*60*60*1000));
var expires=“expires=“+d.toutString();
document.cookie=“isp=“+data+”;“+expires+”;“+path=/”;
});
';
}否则{
$isp\u code\u string=分解(“,$ispinfo”);
$isp_code=$isp_code_字符串[0];
$isp\u name=str\u replace($isp\u代码,,$ispinfo);
setcookie(“isp”、$isp_name,time()+10*365*24*60*60,”/”;
}
}否则{
$isp_code_string=explode(“,$_COOKIE[“isp”]);
$isp_code=$isp_code_字符串[0];
$isp\u name=str\u replace($isp\u代码,,$ispinfo);
$isp_name=“**”$isp_name;
}
PHP运行正常,但当
$ispinfo=@file\u get\u contents(“http://ipinfo.o/“$ip_address.”/org“;
失败。虽然jQuery和JS的源代码出现在源代码(HTML)中,但它没有使用jQuery创建cookie 我对PHP有很好的了解,但对jQuery缺乏了解。
ipinfo.io的问题是它的IP访问有限,使用jQuery我想使用用户的IP获取和创建cookie,以后可以访问这些cookie。

使用jQuery和jQuery。Cookies我用以下代码解决了问题

$ip_address=$_SERVER['REMOTE_ADDR'];    
if(!isset($_COOKIE['isp'])){
    $ispinfo=@file_get_contents("http://ipinfo.io/".$ip_address."/org");
    if($ispinfo==FALSE){
    echo '<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"></script>
<script>
$.get( "http://ipinfo.io/'.$ip_address.'/org", function( data ) {
$.cookie("isp", data, { path: "/", expires: 7 });
$isp_name="jQ";

});
</script>';
    } else {
    $isp_code_string = explode(" ",$ispinfo);
    $isp_code=$isp_code_string[0];
    $isp_name=str_replace($isp_code, '', $ispinfo);
    setcookie("isp", $isp_name, time()+10*365*24*60*60, "/");
    }
    } else {
    $isp_code_string = explode(" ",$_COOKIE["isp"]);
    $isp_code=$isp_code_string[0];
    $isp_name=str_replace($isp_code, '', $ispinfo);
    $isp_name="**".$isp_name;
    }
$ip\u address=$\u服务器['REMOTE\u ADDR'];
如果(!isset($\u COOKIE['isp'])){
$ispinfo=@file\u get\u contents(“http://ipinfo.io/“$ip_地址。”/org”);
如果($ispinfo==FALSE){
回声'
$.get(”http://ipinfo.io/“.$ip_地址”。/org”,函数(数据){
$.cookie(“isp”,数据,{path:“/”,过期时间:7});
$isp_name=“jQ”;
});
';
}否则{
$isp\u code\u string=分解(“,$ispinfo”);
$isp_code=$isp_code_字符串[0];
$isp\u name=str\u replace($isp\u代码,,$ispinfo);
setcookie(“isp”、$isp_name,time()+10*365*24*60*60,”/”;
}
}否则{
$isp_code_string=explode(“,$_COOKIE[“isp”]);
$isp_code=$isp_code_字符串[0];
$isp\u name=str\u replace($isp\u代码,,$ispinfo);
$isp_name=“**”$isp_name;
}

如果你想处理错误,你需要添加错误处理:-我不想处理错误,我只想根据上述参数创建cookie。但是你说当获取失败时不会创建cookie。根据你当前的设计,这是正确的是jquery没有创建cookie。实际的问题是什么?cookie没有无法创建,因为您的代码仅在获取成功时执行-这只能使用fail或always事件处理程序修复