Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

скрыть отображение контента в зависимости от...

Статус пользователя ssx
сообщение 1.6.2017, 14:51
Сообщение #1


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Есть проблема: на моём сайте "ВК виджет" не грузит посетителям которые с UA ip адресов (т.к. трафик на шарашку "Mail.ru Group" с украинских ИПов заблочен).

Нужно решение - не выдавать блок с виджетом ВК если страна Украина.

Как это можно реализовать на php или js ?

Отредактировал: ssx, - 1.6.2017, 14:52


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя ssx
сообщение 1.6.2017, 15:21
Сообщение #2


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Вижу что с помощью Sypex Geo можно даже кэшировать результаты.

Но как именно реализовать я не знаю .


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя onotole
сообщение 1.6.2017, 17:02
Сообщение #3


Иконка группы

Стаж: 13 лет

Сообщений: 1572
Благодарностей: 1119
Полезность: 1550

Меценат Меценат

http://ipgeobase.ru:7020/geo?json=1&ip=91.211.116.28

Отдаст JSON с инфой об IP, в том числе и страну.
Проверяешь, если страна UA то не выводишь блок

ЗЫ. IP адрес в примере нашел в интернетах
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 1.6.2017, 17:20
Сообщение #4


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Можно пример как это использовать ?


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя onotole
сообщение 1.6.2017, 18:17
Сообщение #5


Иконка группы

Стаж: 13 лет

Сообщений: 1572
Благодарностей: 1119
Полезность: 1550

Меценат Меценат

Цитата(ssx @ 1.6.2017, 18:20) *
Можно пример как это использовать ?

Код:

$viewVk = true;
$ip = $_SERVER['REMOTE_ADDR'];
$json = @file_get_contents("http://ipgeobase.ru:7020/geo?json=1&ip={$ip}");
$info = json_decode($json, true);
if(json_last_error() === JSON_ERROR_NONE && isset($info[$ip]['country']) && strtolower($info[$ip]['country']) === 'ua') {
$viewVk = false;
}
...

if($viewVk) {
echo '<div id="vk_comments"></div>';
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 1.6.2017, 20:09
Сообщение #6


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

что-то не получается у меня ...

Код
<div class="block_r">
<div class="block_r_h"><div>Мы Вконтакте</div></div>
<div class="block_r_c">
<script type="text/javascript" src="//vk.com/js/api/openapi.js?98"></script>

<!-- VK Widget -->
<div id="vk_groups"></div>
<script type="text/javascript">
VK.Widgets.Group("vk_groups", {mode: 2, width: "210", height: "600", color1: 'FFFFFF', color2: '2B587A', color3: '0089EA'}, 59589200);
</script>
</div>
<div class="block_r_b"></div>
</div>


Как сделать что бы этот кусок кода был если не украинский ип ?


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя onotole
сообщение 1.6.2017, 21:35
Сообщение #7


Иконка группы

Стаж: 13 лет

Сообщений: 1572
Благодарностей: 1119
Полезность: 1550

Меценат Меценат

Код:

$viewVk = true;
$ip = $_SERVER['REMOTE_ADDR'];
$json = @file_get_contents("http://ipgeobase.ru:7020/geo?json=1&ip={$ip}");
$info = json_decode($json, true);
if(json_last_error() === JSON_ERROR_NONE && isset($info[$ip]['country']) && strtolower($info[$ip]['country']) === 'ua') {
$viewVk = false;
}
...

if($viewVk) {
echo '<div class="block_r">
<div class="block_r_h"><div>Мы Вконтакте</div></div>
<div class="block_r_c">
<script type="text/javascript" src="//vk.com/js/api/openapi.js?98"></script>

<!-- VK Widget -->
<div id="vk_groups"></div>
<script type="text/javascript">
VK.Widgets.Group("vk_groups", {mode: 2, width: "210", height: "600", color1: 'FFFFFF', color2: '2B587A', color3: '0089EA'}, 59589200);
</script>
</div>
<div class="block_r_b"></div>
</div>';
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 5 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 1.6.2017, 22:31
Сообщение #8


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

В самом шаблоне дле если прописывать то текстом выводит.
Я пробую как остальные модули подгружаются:
Код
{include file="engine/modules/lastcomments/show.php"}


создал файл, прописал его подгрузку.. сам файл:
Код
<?php
$viewVk = true;
$ip = $_SERVER['REMOTE_ADDR'];
$json = @file_get_contents("http://ipgeobase.ru:7020/geo?json=1&ip={$ip}");
$info = json_decode($json, true);
if(json_last_error() === JSON_ERROR_NONE && isset($info[$ip]['country']) && strtolower($info[$ip]['country']) === 'ua') {
    $viewVk = false;
}
if($viewVk) {
    echo '<div class="block_r">
<div class="block_r_h"><div>Мы Вконтакте</div></div>
<div class="block_r_c">
<script type="text/javascript" src="//vk.com/js/api/openapi.js?98"></script>

<!-- VK Widget -->
<div id="vk_groups"></div>
<script type="text/javascript">
VK.Widgets.Group("vk_groups", {mode: 2, width: "210", height: "600", color1: "FFFFFF", color2: "2B587A", color3: "0089EA"}, 59589200);
</script>
</div>
<div class="block_r_b"></div>
</div>';
}
?>

Ругается на 6-ю строчку:
Код
Fatal error: Call to undefined function json_last_error() in D:\xampp\htdocs\engine\modules\vk_widget.php on line 6

То есть на эту:
Код
if(json_last_error() === JSON_ERROR_NONE && isset($info[$ip]['country']) && strtolower($info[$ip]['country']) === 'ua') {


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя onotole
сообщение 1.6.2017, 22:36
Сообщение #9


Иконка группы

Стаж: 13 лет

Сообщений: 1572
Благодарностей: 1119
Полезность: 1550

Меценат Меценат

ssx, обнови РНР хотябы до 5.6
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 1.6.2017, 22:44
Сообщение #10


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(onotole @ 1.6.2017, 22:36) *
ssx, обнови РНР хотябы до 5.6

Включил php_json модуль , перезапустил но не помогло .. php чуть позже буду обновлять..
Сейчас стоит PHP Version 5.2.8

Цитата
json
json support enabled
json version 1.2.1


Отредактировал: ssx, - 1.6.2017, 22:48


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя onotole
сообщение 2.6.2017, 0:27
Сообщение #11


Иконка группы

Стаж: 13 лет

Сообщений: 1572
Благодарностей: 1119
Полезность: 1550

Меценат Меценат

Цитата(ssx @ 1.6.2017, 23:44) *
PHP Version 5.2.8

Божечки-кошечки
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя esterio
сообщение 2.6.2017, 14:01
Сообщение #12
Стаж: 13 лет
Город: Украина

Сообщений: 266
Благодарностей: 215
Полезность: 627

ssx,
Код
<div id="vk_groups">VK Group</div>
<script type="text/javascript">
(function(div, option, key) {
    if (!window.vkAsyncInitCallbacks) {
        vkAsyncInitCallbacks = [];
    }
    vkAsyncInitCallbacks.push(function() {
        VK.Widgets.Group(div, option, key);
    })
    var script = document.createElement('script');
    script.src = '//vk.com/js/api/openapi.js?98';
    document.getElementsByTagName("head")[0].appendChild(script);
})("vk_groups", {mode: 2, width: "210", height: "600", color1: 'FFFFFF', color2: '2B587A', color3: '0089EA'}, 59589200)
</script>


и не нужно никаких GeoIP


Ми будемо вбивати росіян у будь-якій точці світу до повної перемоги України
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 2.6.2017, 14:06
Сообщение #13


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

esterio,
ты не понял суть того что я хочу реализовать.

трафик на "mail.ru group" сервисы заблокирован в Украине.

При заходе на сайт - вызывает ожидание подгрузки виджета с vk.com . Это я и пытаюсь убрать что бы не ждал браузер 30 сек (где-то так таймаут ожидания).



[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя esterio
сообщение 2.6.2017, 14:08
Сообщение #14
Стаж: 13 лет
Город: Украина

Сообщений: 266
Благодарностей: 215
Полезность: 627

ssx, так я и сбросил готовый пример. Там внутри виджета есть таймаут. Если он не загрузиться то не будет вызван callback. Просто попробуй


Ми будемо вбивати росіян у будь-якій точці світу до повної перемоги України
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя esterio
сообщение 2.6.2017, 14:18
Сообщение #15
Стаж: 13 лет
Город: Украина

Сообщений: 266
Благодарностей: 215
Полезность: 627

ssx,
Код
<div id="vk_groups">VK Group</div>
<script type="text/javascript">
(function(div, option, key) {
    if (!window.vkAsyncInitCallbacks) {
        vkAsyncInitCallbacks = [];
    }
    vkAsyncInitCallbacks.push(function() {
        VK.Widgets.Group(div, option, key);
    })
    var script = document.createElement('script');
    script.src = '//vk.com/js/api/openapi.js?98';
    script.async = true;
    document.getElementsByTagName("head")[0].appendChild(script);
})("vk_groups", {mode: 2, width: "210", height: "600", color1: 'FFFFFF', color2: '2B587A', color3: '0089EA'}, 59589200)
</script>

Добавил ассинхроную загрузку дабы главный поток не ждал

Отредактировал: esterio, - 2.6.2017, 14:18


Ми будемо вбивати росіян у будь-якій точці світу до повної перемоги України
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 5 раз
   + Цитировать сообщение
Статус пользователя esterio
сообщение 2.6.2017, 15:06
Сообщение #16
Стаж: 13 лет
Город: Украина

Сообщений: 266
Благодарностей: 215
Полезность: 627

забыл дописать
Код
<script type="text/javascript" src="//vk.com/js/api/openapi.js?98"></script>

нужно убрать


Ми будемо вбивати росіян у будь-якій точці світу до повної перемоги України
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 2.6.2017, 16:04
Сообщение #17


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Спасибо! Помогло . Но я после обновы php все равно буду использовать json т.к. вместо блока с виджетом ВК буду подставлять либо блок с виджетом ФБ либо ничего вовсе.

Еще хотел спросить, как вот такой скрипт перевести на ассинхрон ?
А то пока не ответит - не обрабатывает далее код браузер ..

Код
<!-- AJAX HEAD CONTRIB --><div id="widget_classifieds_566c287a3b2e7" class="margin20_auto"> <div id="widget_wrapper_566c287a3b2e7"> <div id="widget_hd_566c287a3b2e7"> <a id="widget_hd_link_logo_566c287a3b2e7"rel="nofollow" href="http://olx.ua/list/user/10Wql"> <img id="widget_hd_logo_566c287a3b2e7" src="http://s1.olx.ua/static/olxua/naspersclassifieds-regional/olxeu-atlas-web-olxua/static//img/logo_widget.png?v=1" alt=""> </a> <a id="widget_hd_link_566c287a3b2e7" rel="nofollow" href="http://olx.ua/list/user/10Wql">Наши товары на olx.ua</a> </div> <div id="widget_bd_566c287a3b2e7"> <div id="widget_566c287a3b2e7">Загрузка</div> </div> <div id="widget_ft_566c287a3b2e7"> </div> </div></div><script type="text/javascript" src="http://olx.ua/ajax/widgets/get/566c287a3b2e7/?data=user=10Wql,width=204,number=15,"></script>


П.С. код одной строкой прописан.

Отредактировал: ssx, - 2.6.2017, 16:05


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя esterio
сообщение 2.6.2017, 16:29
Сообщение #18
Стаж: 13 лет
Город: Украина

Сообщений: 266
Благодарностей: 215
Полезность: 627

Цитата
Но я после обновы php все равно буду использовать json

На пхп + геоип костильно получиться. Причин маса. лень расписивать. Чекать доступность нужно на клиенте а не на сервере. Ведь вы не вкурсе что у него там и как.
Цитата
вместо блока с виджетом ВК буду подставлять либо блок с виджетом ФБ либо ничего вовсе.

так что мешает по таймауту выводить ФБ групу. Вообше там идей полный вогон как можно все красиво и лаконично разрулить.

Цитата
Еще хотел спросить, как вот такой скрипт перевести на ассинхрон ?

Нужно подробно расматривать. Сам по собе JS ассинхронен by design. Просто нужно уметь его готовить


Ми будемо вбивати росіян у будь-якій точці світу до повної перемоги України
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя esterio
сообщение 2.6.2017, 16:38
Сообщение #19
Стаж: 13 лет
Город: Украина

Сообщений: 266
Благодарностей: 215
Полезность: 627

Код
<div id="olx_widget" style="display: none">
    <div id="widget_classifieds_566c287a3b2e7" class="margin20_auto">
        <div id="widget_wrapper_566c287a3b2e7">
            <div id="widget_hd_566c287a3b2e7">
                <a id="widget_hd_link_logo_566c287a3b2e7"rel="nofollow" href="http://olx.ua/list/user/10Wql">
                    <img id="widget_hd_logo_566c287a3b2e7" src="http://s1.olx.ua/static/olxua/naspersclassifieds-regional/olxeu-atlas-web-olxua/static//img/logo_widget.png?v=1" alt="">
                </a>
                <a id="widget_hd_link_566c287a3b2e7" rel="nofollow" href="http://olx.ua/list/user/10Wql">Наши товары на olx.ua</a>
            </div>
            <div id="widget_bd_566c287a3b2e7">
                <div id="widget_566c287a3b2e7">Загрузка</div>
            </div>
            <div id="widget_ft_566c287a3b2e7"> </div>
        </div>
    </div>
</div>
<script type="text/javascript">
(function(url){
    function onload() {
        document.getElementById('olx_widget').style.display = 'block';
    }
    var script = document.createElement('script');
    script.onload = script.onreadystatechange = onload;
    script.src = url;
    script.async = true;
    document.getElementsByTagName("head")[0].appendChild(script);
})('http://olx.ua/ajax/widgets/get/566c287a3b2e7/?data=user=10Wql,width=204,number=15,')
</script>


Ми будемо вбивати росіян у будь-якій точці світу до повної перемоги України
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя onotole
сообщение 2.6.2017, 19:35
Сообщение #20


Иконка группы

Стаж: 13 лет

Сообщений: 1572
Благодарностей: 1119
Полезность: 1550

Меценат Меценат

esterio, клиенту тоже верить нельзя
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: