как исправить код php для вывода эха на основе геолокации - PullRequest
0 голосов
/ 07 апреля 2019

Я пытаюсь отобразить город в содержимом моей веб-страницы, если этот город находится в Техасе, используя php и гео-платную услугу. Почему не работает мой оператор if .... else?

Платная служба геолокации SSL через ipstack. Хост GoDaddy с использованием cpanel

<html>
    <h1>
    <?php
    $ip = $_SERVER['REMOTE_ADDR']; 
    $api_key = "myipstackkeygoeshere";
    $freegeoipjson = file_get_contents("http://api.ipstack.com/".$ip."?access_key=".$api_key."");
    $jsondata = json_decode($freegeoipjson);
    $cityfromip = $jsondata->city;
    $region_namefromip = $jsondata->region_name;
    if ($region_namefromip = "Texas") {
    echo "". $cityfromip ."";
    } else {
    echo "Texas";
    }
    ?>
    Services</h1>  
 </body>
</html>

Я хочу, чтобы город отображался перед «Сервисами», если посетитель находится в Техасе (например, «Сервисы Далласа»). Если местоположение посетителя находится не в Техасе, я хочу, чтобы "Техас" отображал (Пример: "Службы Техаса").

Перед добавлением оператора if ... else и использованием только echo "". $cityfromip .""; на странице будет отображаться город (независимо от того, в каком штате). С оператором if ... else город не отображается. Где мой код идет не так?

1 Ответ

0 голосов
/ 08 апреля 2019

Ответ Джека помог, и я смог найти рабочее решение, используя:

<?php  
 $ip = $_SERVER['REMOTE_ADDR']; 
 $api_key = "AccessKeyGoesHere"; 
 $freegeoipjson = file_get_contents("https://api.ipstack.com/".$ip."?access_key=".$api_key.""); 
 $data = json_decode($freegeoipjson, TRUE); 
 $city = print_r($data['city'], true); 
 $state = print_r($data['region_code'], true); 
 $charlotte_cities_in_75_mile_radius = "City1 City2 City3 City4 City5 City6 City7 City8"; 

 if ((strpos($charlotte_cities_in_75_mile_radius,$city) !== false) AND ($state == "NC")) { 
     echo $city ."&nbsp;"; 
 }
 else { 
     echo 'North Carolina '; 
 } 
 ?> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...