2015-07-05 1 views
-1

Что я пропускаю в следующем PHP + JQuery кодКак создать печенье с помощью JQuery, если PHP не может загрузки определенного URL контента

$ip_address=$_SERVER['REMOTE_ADDR'];  
if(!isset($_COOKIE['isp'])){ 
    [email protected]_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; 
    } 

PHP работает нормально, но когда [email protected]_get_contents("http://ipinfo.o/".$ip_address."/org"); не удается, не создавая cookie с помощью jQuery, хотя источник jQuery cum JS появляется в исходном коде (HTML) У меня есть хорошие знания о PHP, но мне не хватает jQuery. Проблема с ipinfo.io заключается в том, что она имеет ограниченный доступ к IP-адресу, а с помощью jQuery я хочу использовать IP-адрес пользователя для извлечения и создания файлов cookie, которые могут быть впоследствии доступны.

+0

Если вы хотите обрабатывать ошибки, нужно добавить обработку ошибок: http://stackoverflow.com/questions/4062317/jquery- get-error-response-function - https://api.jquery.com/jquery.get/ – mplungjan

+0

Я не хочу обрабатывать ошибки, я просто хочу создать cookie, основанный на вышеуказанных параметрах. – Disk01

+0

Но вы говорите, что файл cookie не создается, когда get терпит неудачу. Это верно в соответствии с вашим текущим дизайном – mplungjan

ответ

0

Использование JQuery и jQuery.Cookies я решил проблему с следующим кодом

$ip_address=$_SERVER['REMOTE_ADDR'];  
if(!isset($_COOKIE['isp'])){ 
    [email protected]_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; 
    } 
Смежные вопросы