Добрый вечер есть скрипт переходов от алсити с установкой на сторонем хостинге php все работает отлично,но один небольшой баг если в гугле искать на русском то кодировка идет в виде вопросительного знака ??????????? кто понимает php пожалуйста подправте скрипт
Code
<?php
/*
* У нас нашли! для CMS uCoz <img rel="usm" src="http://usite.su/uSite_sml/wink_mini.gif" border="0" align="absmiddle" alt=";)" />
* Все права на данный скрипт принадлежат сайту AllCity.Net.Ru ~ http://allcity.net.ru/
* Версия скрипта 1.2.2
*/
// Переменные
$RefPage = urldecode($_REQUEST['page']); // Переменная запрос Referer
// Переводим в кодировку UTF-8
header('Content-Type: text/javascript; charset=utf-8');
// DB настройки
$DB_User = ''; // Логин БД
$DB_Name = ''; // Таблица
$DB_Pass = ''; // Пароль БД
$DB_Serv = 'localhost'; // Путь к серверу БД
$Max_Length = 0; // Обрезать слово? 0 = нет
$Limit = 7; // Сколько показывать результатов?
$uCoz_Doamin = ''; // Домен сайта на uCoz без www
// SQL Core
$SQLCon = mysql_connect($DB_Serv, $DB_User, $DB_Pass);
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_select_db($DB_Name, $SQLCon);
if(!$SQLCon)
{
die('Невозможно подключиться: '.mysql_error());
}
// Получение хоста
$URL_Parse = parse_url($RefPage);
// Список поисковиков
$EngiList = array(
'Google' => 'www.google.',
'Yandex' => 'http://yandex.',
'Rambler' => 'nova.rambler',
'Aport' => 'sm.aport.ru',
'Mail' => 'go.mail.ru',
'Nigma' => 'nigma.ru',
'yahoo' => 'search.yahoo.com',
'Unknown' => true
);
// Сравнение
foreach($EngiList as $CurrEngi=>$Match)
{
if(eregi($Match, $RefPage))
{
break;
}
}
// Для тех кто страдает фигней!
$SiteReferer = $_SERVER['HTTP_REFERER'];
$SiteDomain = parse_url($SiteReferer);
$SiteDomain = str_replace('www.', '', $SiteDomain);
// Проверка
if($uCoz_Doamin != $URL_Parse['host'] && $CurrEngi != 'Unknown' && $SiteDomain['host'] == $uCoz_Doamin)
{
// Получение запроса поиска
switch($CurrEngi)
{
case 'Yandex':
$Engine = 'Yandex';
$SW = 'text=';
break;
case 'Rambler':
$Engine = 'Rambler';
$SW = 'query=';
break;
case 'Aport':
$Engine = 'Aport';
$SW = 'r=';
$RefPage = iconv('cp1251', 'utf-8', $RefPage); // fix с кодировкой!
break;
case 'Mail':
$Engine = 'Mail';
$SW = 'q=';
$RefPage = iconv('cp1251', 'utf-8', $RefPage); // fix с кодировкой!
break;
case 'Nigma':
$Engine = 'Nigma';
$SW = 's=';
break;
case 'yahoo':
$Engine = 'yahoo';
$SW = 'p=';
break;
case 'Google':
default:
$Engine = 'Google';
$SW = 'q=';
break;
}
// Получение запроса и запись в БД
$Title = $RefPage;
eregi($SW.'([^&]*)', $Title.'&', $Title);
if(!empty($Title))
{
mysql_query('INSERT INTO allcity_referer (url, title, engine, date) VALUES ("'.htmlspecialchars($RefPage, ENT_QUOTES).'", "'.htmlspecialchars($Title[1], ENT_QUOTES).'", "'.htmlspecialchars($Engine, ENT_QUOTES).'", UNIX_TIMESTAMP())');
}
}
// Показываем список
$Result = mysql_query('SELECT url, title, engine, date FROM allcity_referer ORDER BY id DESC LIMIT '.$Limit);
if(!empty($Result))
{
// Start JS
echo 'var SerEngiData = \'';
$Empty = true;
while($row = mysql_fetch_array($Result))
{
$URL_Parse = parse_url($row['url']);
$Title = ($Max_Length != 0 && mb_strlen($row['title'], 'utf-8') >= $Max_Length + 3) ? mb_substr($row['title'], 0, $Max_Length, 'utf-8').'...' : $row['title'];
echo '<div class="RefRow"><img src="http://'.$_SERVER['SERVER_NAME'].'/refimg/'.mb_strtolower($row['engine']).'.gif" align="absmiddle" border="0" /> » <a href="'.$row['url'].'" title="'.$row['title']. date(' (d.m.Y | H:i:s)' ,$row['date']).'">'.$Title.'</a></div><break>';
$Empty = false;
}
if($Empty)
{
echo 'Нет данных...';
}
// END JS
echo '\';';
}
// Когда нет что показывать
else
{
echo 'var SerEngiData = \'Нет данных...\';';
}
// Закрываем соединение с БД
mysql_close($SQLCon);
?>