Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Каждой стране свой баннер 
:(
    Опции темы
Каролина
Дата 18.3.2011, 22:42 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 26.12.2006

Репутация: 1
Всего: 1



Есть такой скрипт,открывающий для определённой страны свою страницу:
Код

<?php
$ip = $_SERVER["REMOTE_ADDR"];
include("geoipcity.inc");
$gi = geoip_open("GeoIPCity.dat",GEOIP_STANDARD);
$giorg = geoip_open("GeoIPOrg.dat",GEOIP_STANDARD); 
$record = geoip_record_by_addr($gi, $ip);
$org = geoip_org_by_addr($giorg, $ip); 
if($record->country_code == UA)
{
include("1.html"); exit;
break;
} 
if($record->country_code == KZ)
{
include("2.html");exit;
break;
} 
if($record->country_code == GE)
{
include("3.html");exit;
break;
} 
if($record->country_code == AU)
{
include("4.html");exit;
break;
} 
if($record->country_code == LV)
{
include("5.html");exit;
break;
}
if($record->country_code == IT)
{
include("6.html");exit;
break;
}
if($record->country_code == AR)
{
include("7.html");exit;
break;
}
if($record->country_code == BE)
{
include("8.html");exit;
break;
} else {
include("9.html");exit;
}
geoip_close($gi);
geoip_close($giorg);
?>

теперь на его основе хочу сделать скрипт чтоб для каждой страны показывался свой баннер,баннер в виде картинки jpg.Скажите как сделать чтоб вместо страницы html показывалась картинка соответствующая стране.

Это сообщение отредактировал(а) Каролина - 18.3.2011, 22:43
PM MAIL   Вверх
Evghenusi
Дата 19.3.2011, 00:11 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 6
Всего: 15



Код

if($record->country_code == UA)
{
$img='UA.jpg';
} 
if($record->country_code == KZ)
{
$img='KZ.jpg';
} 
if($record->country_code == GE)
{
$img='GE.jpg';
} 
if($record->country_code == AU)
{
$img='AU.jpg';
} 
if($record->country_code == LV)
{
$img='LV.jpg';
}
if($record->country_code == IT)
{
$img='IT.jpg';
}
if($record->country_code == AR)
{
$img='AR.jpg';
}
if($record->country_code ==  BE)
{
$img='BE.jpg';
} else {
$img='xз.jpg';
}

echo "<img src='$img' alt='' border='0' />";

PM WWW   Вверх
Каролина
Дата 19.3.2011, 01:12 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 26.12.2006

Репутация: 1
Всего: 1



Сделала вот так:
Код

<?php
$ip = $_SERVER["REMOTE_ADDR"];
include("geoipcity.inc");
$gi = geoip_open("GeoIPCity.dat",GEOIP_STANDARD);
$giorg = geoip_open("GeoIPOrg.dat",GEOIP_STANDARD); 
$record = geoip_record_by_addr($gi, $ip);
$org = geoip_org_by_addr($giorg, $ip); 
if($record->country_code == UA)
{
$img='banners/UA.jpg';
} 
if($record->country_code == RU)
{
$img='banners/RU.jpg';
} 
if($record->country_code == AZ)
{
$img='banners/AZ.jpg';
} 
if($record->country_code == LV)
{
$img='banners/LV.jpg';
} 
if($record->country_code == DE)
{
$img='banners/DE.jpg';
}
if($record->country_code == FR)
{
$img='banners/FR.jpg';
}
if($record->country_code == US)
{
$img='banners/US.jpg';
}
if($record->country_code ==  BE)
{
$img='banners/BE.jpg';
} else {
$img='banners/WW.jpg';
}
geoip_close($gi);
geoip_close($giorg);
echo "<img src='$img' alt='' border='0' />";
?>


Но меняя,подставляя айпишники этих стран всегда выводится только картинка WW.jpg тоесть та которая по идее должна выводится если ни одна страна из списка не попадает.Тот код со страницами HTML который я взяла за образец работает на ура.
PM MAIL   Вверх
Shogun
Дата 19.3.2011, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сёгун-сан
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 8.6.2006
Где: Кишинёв

Репутация: 9
Всего: 11



Код

<?php
$ip = $_SERVER["REMOTE_ADDR"];
include("geoipcity.inc");
$gi = geoip_open("GeoIPCity.dat",GEOIP_STANDARD);
$giorg = geoip_open("GeoIPOrg.dat",GEOIP_STANDARD); 
$record = geoip_record_by_addr($gi, $ip);
$org = geoip_org_by_addr($giorg, $ip); 


$countries = array('UA', 'RU', 'AZ', 'LV', 'DE', 'FR', 'US', 'BE');
$country = in_array($record->country_code, $countries) ? $record->country_code : 'WW';

$img = 'banners/'.$country.'.jpg';


geoip_close($gi);
geoip_close($giorg);
echo "<img src='$img' alt='' border='0' />";
?>



--------------------
2b || !2b
PM MAIL ICQ Skype   Вверх
Каролина
Дата 19.3.2011, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 26.12.2006

Репутация: 1
Всего: 1



Shogun, спасибо,ваш вариант работает,а можно сделать чтоб вместо картинок были флэшки SWF-файлы,так как с картинками неудобно немного потому что к конкретному банеру в JPG невозможно прикрутить ссылку.
PM MAIL   Вверх
Shogun
Дата 19.3.2011, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сёгун-сан
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 8.6.2006
Где: Кишинёв

Репутация: 9
Всего: 11



Цитата(Каролина @  19.3.2011,  15:58 Найти цитируемый пост)
Shogun, спасибо,ваш вариант работает,а можно сделать чтоб вместо картинок были флэшки SWF-файлы,так как с картинками неудобно немного потому что к конкретному банеру в JPG невозможно прикрутить ссылку. 


нзч, это почему нельзя картинкам ссылки ставить?
Код

echo "<a href='http://...'><img src='$img' alt='' border='0' /></a>";


Ну если Вам очень не хватает головной боли то можете и флэш ставить, что мешает вместо вывода картинки сделать вывод swf??

например:
Код

$img = '/banners/'.$country.'.swf';

echo '<object width="50" height="50">
<param name="movie" value="'.$img.'">
<embed src="'.$img.'" width="50" height="50"></embed>
</object>';

это минимум, не лучший вариант наверное...


--------------------
2b || !2b
PM MAIL ICQ Skype   Вверх
Каролина
Дата 19.3.2011, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 26.12.2006

Репутация: 1
Всего: 1



Цитата

нзч, это почему нельзя картинкам ссылки ставить?

Потому что ссылка будет одна на все баннеры,что это будет баннер RU.jpg что UA.jpg
Здесь то ссылка будет постоянной,а меняется же только переменная в которой картинка:
Код

echo "<a href='http://...'><img src='$img' alt='' border='0' /></a>";


Это сообщение отредактировал(а) Каролина - 19.3.2011, 16:16
PM MAIL   Вверх
Shogun
Дата 19.3.2011, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сёгун-сан
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 8.6.2006
Где: Кишинёв

Репутация: 9
Всего: 11



Цитата(Каролина @ 19.3.2011,  16:16)
Цитата

нзч, это почему нельзя картинкам ссылки ставить?

Потому что ссылка будет одна на все баннеры,что это будет баннер RU.jpg что UA.jpg
Здесь то ссылка будет постоянной,а меняется же только переменная в которой картинка:
Код

echo "<a href='http://...'><img src='$img' alt='' border='0' /></a>";

И как должны выглядеть ваши ссылки?

Если также как и код картинки, меняется только часть кода с ид страны то например:
Код

echo "<a href='http://site.com/country/".$country."'><img src='$img' alt='' border='0' /></a>";


Если же для каждой страны отдельная ссылка не похожая на другие то:
Код

$links = array('RU'=>'http://site.ru', 'UA'=>'http://site.ua', 'AZ'=>'http://site.az' .......);

echo "<a href='".$links[$country]."'><img src='$img' alt='' border='0' /></a>";


Это сообщение отредактировал(а) Shogun - 19.3.2011, 16:46


--------------------
2b || !2b
PM MAIL ICQ Skype   Вверх
Каролина
Дата 19.3.2011, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 26.12.2006

Репутация: 1
Всего: 1



Shogun, спасибо,как раз что надо.
PM MAIL   Вверх
Muerto
Дата 19.3.2011, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Цитата(Evghenusi @ 19.3.2011,  00:11)
Код

if($record->country_code == UA)
{
$img='UA.jpg';
} 
if($record->country_code == KZ)
{
$img='KZ.jpg';
} 
if($record->country_code == GE)
{
$img='GE.jpg';
} 
if($record->country_code == AU)
{
$img='AU.jpg';
} 
if($record->country_code == LV)
{
$img='LV.jpg';
}
if($record->country_code == IT)
{
$img='IT.jpg';
}
if($record->country_code == AR)
{
$img='AR.jpg';
}
if($record->country_code ==  BE)
{
$img='BE.jpg';
} else {
$img='xз.jpg';
}

echo "<img src='$img' alt='' border='0' />";

Бред...

За место всего этого ужоса нужно просто
Код

$img = $record->country_code . '.jpg';


 smile 

Если не для всех есть баннер, то можно проверить если файл существует, если нет то показать по умолчанию...

Это сообщение отредактировал(а) Muerto - 19.3.2011, 17:13


--------------------
user posted image
PM MAIL   Вверх
Каролина
Дата 19.3.2011, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 26.12.2006

Репутация: 1
Всего: 1



А ещё впрос,извините если не сюда,но относится к моему скрипту.Как можно изменить на локальном сервере 127.0.0.1 на нужный мне для проверки правильности отображения баннеров? Пробовала в сети заходить на сайт со скриптом через прокси но не получается,в исходном коде страницы смотрю прокси меняет все пути до баннеров на свои шифрованные какие-то.
PM MAIL   Вверх
Shogun
Дата 19.3.2011, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сёгун-сан
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 8.6.2006
Где: Кишинёв

Репутация: 9
Всего: 11



Muerto, я так и написал выше, только вместо file_exists сделал с in_array, так лучше думаю.


--------------------
2b || !2b
PM MAIL ICQ Skype   Вверх
Каролина
Дата 19.3.2011, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 26.12.2006

Репутация: 1
Всего: 1



Кто-нибудь знает как можно изменить на локальном сервере 127.0.0.1 на нужный мне для проверки правильности отображения баннеров? Пробовала в сети заходить на сайт со скриптом через прокси но не получается,в исходном коде страницы смотрю прокси меняет все пути до баннеров на свои шифрованные какие-то.
PM MAIL   Вверх
Evghenusi
Дата 19.3.2011, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 6
Всего: 15



Цитата(Muerto @  19.3.2011,  17:12 Найти цитируемый пост)
Бред...
 код не мой, что предоставили с тем и работал, о оптимизации речь не шла

Это сообщение отредактировал(а) Evghenusi - 19.3.2011, 23:20
PM WWW   Вверх
Muerto
Дата 20.3.2011, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Evghenusi,  smile 

Просто представьте себе стран 100

...

и каждый раз 
if
if
if
if

ПРичем если самый первый if нашел то что нужно, все равно будет проверять ещё 99 раз...

Конечно сравнения простые не займут больше чем 0.02 секунды в среднем наверно....
Но если бы функция была посложней...

как минимум if-else
ещё лучше switch case (читабельней) 
ну а ещё лучше ухитриться ... как вот Shogun подсказал, и я свои 5 копеек добавил  smile 


--------------------
user posted image
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0594 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.