TYMAH3003 0 Опубликовано: 16 декабря 2009 Рассказать Опубликовано: 16 декабря 2009 Поставил модуль Автодобавление ссылок Добавляю ссылку русскими буквами а вместь них ? ? ? ? ? ? ? ? как это исправить <?PHP /* ===================================================== Модуль Автообмен ссылок v1.4 для DataLife Engine ----------------------------------------------------- Created by nick-on [http://alldle.ru/] ----------------------------------------------------- ===================================================== Данный код защищен авторскими правами ===================================================== Файл: partner.php ----------------------------------------------------- Назначение: Добавление ссылки ===================================================== */ if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } // ---------------------------------------------------------------------------- // ---- Настройка // ---------------------------------------------------------------------------- define("SITE_LIMIT", 20); define("PLUG", ENGINE_DIR . '/inc/plugins/'); define("PARTNER_UPLOAD", ROOT_DIR."/uploads/partner/"); define("ITEM_IMAGE", "{THEME}/images/partner.gif"); // ---------------------------------------------------------------------------- // ----- Дальше ничего не трогать!! // ---------------------------------------------------------------------------- define("IMAGE_SIZE", 150); define("SITE_PREFIX", $config['http_home_url']."go.php?"); @set_time_limit(0); $allowed_extensions = array("gif", "jpg", "png", "jpe", "jpeg"); require_once PLUG . '/partner.functions.php'; require_once ENGINE_DIR.'/classes/parse.class.php'; $parse = new ParseFilter(Array(), Array(), 1, 1); // ---------------------------------------------------------------------------- // Определение откуда пришёл пользователь (Получаем реферер) // ---------------------------------------------------------------------------- if ($_SERVER['REMOTE_ADDR']) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "not detected"; if (!empty($HTTP_ENV_VARS) && isset($HTTP_ENV_VARS['HTTP_REFERER'])) { $HTTP_REFERER = $HTTP_ENV_VARS['HTTP_REFERER']; } else if (@getenv('HTTP_REFERER')) { $HTTP_REFERER = getenv('HTTP_REFERER'); }; $ref_site_ereg = clear_url($HTTP_REFERER); if (!eregi($config['http_home_url'], $HTTP_REFERER) and trim( $HTTP_REFERER ) != "" ) { $sql_query = "SELECT * FROM ".PREFIX."_partner WHERE site_url LIKE '%$ref_site_ereg%'"; $result = $db->query($sql_query); while ($row = $db->get_row($result)) { // ---- while start $ereg_url = clear_url($row['site_url']); if (trim($ereg_url) != "") { if (eregi($ereg_url, $HTTP_REFERER)) { $sql_query = "UPDATE ".PREFIX."_partner SET views = views + 1 WHERE id = '" . $row['id'] . "'"; $db->query($sql_query); } } }; // ----- while end }; // ---------------------------------------------------------------------------- // Отображение общего списка партнёров // ---------------------------------------------------------------------------- if ($partner_action == "show") { $partner = dle_cache("partner", $config['skin']); if (!$partner) { $partner = "<table cellpadding=4 cellspacing=0>"; $result = $db->query("SELECT site_url, site_name, site_image, site_description, id FROM ".PREFIX."_partner WHERE locked = 0 ORDER BY views DESC, clicks DESC LIMIT 0, ".SITE_LIMIT); while ($row = $db->get_row($result)) { if (trim($row['site_image']) != "") { $image_url = $config['http_home_url']."uploads/partner/" . $row['site_image']; } else { $image_url = $config['http_home_url']."engine/skins/images/users.png"; } $site_desc = stripslashes($row['site_description']); $partner .= "<tr> <td class=stext><img src=\"".ITEM_IMAGE."\" border=0></td> <td class=stext style=\"padding:2px\"> <a onMouseover=\"showhint('<center><img src=$image_url border=0><br>$site_desc</center>', this, event, '160px')\" href=\"" . SITE_PREFIX . $row['site_url']."\" target=\"_blank\">$row[site_name]</a> </td></tr>"; }; $partner .= "</table>"; create_cache ("partner", $partner); }; // ---------------------------------------------------------------------------- // Добавление ссылки в базу // ---------------------------------------------------------------------------- } elseif ($_POST['proceed'] == "add") { $sec_code = trim($_SESSION['sec_code_session']); $site_name = $db->safesql($parse->process($_POST['reg_site_name'])); $site_url = $db->safesql($parse->process($_POST['reg_site_url'])); $site_desc = $db->safesql($parse->process($_POST['reg_site_desc'])); $sec_code_inp = $db->safesql($parse->process($_POST['reg_sec_code'])); $stop = false; // Проверка длины имени сайта и ссылки if (strlen($site_name) > 60 or strlen($site_url) > 255) { msgbox ($lang['all_info'], "Превышена длина имени сайта или его ссылки.<br> Имя сайта должно быть не больше 60 символов, а ссылка не более 255 символов<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); // Проверка имени сайта } elseif ((preg_match("/[\||\'|\"|\!|\$|\@|\&\~\*\+]/", $site_name)) or (empty($site_name))) { msgbox ($lang['all_info'], "Неверно указано имя сайта.<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); // Проверка ссылки сайта } elseif (!(eregi("http:\/\/", $site_url) || eregi("www", $site_url))) { msgbox ($lang['all_info'], "Неверно указана ссылка сайта.<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); // Проверка кода } elseif ($sec_code != $sec_code_inp) { msgbox ($lang['all_info'], "Неверно указан код.<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); // Описание сайта } elseif (strlen($site_desc) > 255) { msgbox ($lang['all_info'], "Неверно указано описание сайта.<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); }; // --- Проверка ссылки .. $checked = false; $status = check_url($site_url); switch ($status) { case -1: msgbox ($lang['all_info'], "Нет соединения с Вашим сервером! Невозможно проверить наличие нашей ссылки на Вашем сайте.. попробуйте повторить операцию позже<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); break; case 0: msgbox ($lang['all_info'], "Перед добавлением ссылки на Наш сайт Вам необходимо поставить нашу ссылку на Ваш сайт, в противном случае ссылка не будет добавлена!<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); break; case 1: $checked = true; break; } if ($checked == true) { // Закачка файла if (trim($_FILES['reg_site_image']['name']) != "") { $file_temp = $_FILES['reg_site_image']['tmp_name']; $file_name = $_FILES['reg_site_image']['name']; $file_size = $_FILES['reg_site_image']['size']; $max_size = $config['max_up_size'] * 1024; /* --- Ограничение по размеру (настраивается в админпанели) --- */ if ($file_size > $max_size) { $stop = true; msgbox ($lang['all_info'], "Ошибка загрузки файла. Слишком большой размер.<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); } else { $file_ext = explode(".", strtolower($file_name)); $file_ext = end($file_ext); /* --- Проверка расширения файла --- */ if (in_array($file_ext, $allowed_extensions)) { $file_prefix = time(); $upload_name = PARTNER_UPLOAD."large_".$file_prefix."_".$file_name; $thumb_name = PARTNER_UPLOAD."thumb_".$file_prefix."_".$file_name; $only_name = basename($thumb_name); $upload_complete = false; $upload_result = @move_uploaded_file($file_temp, $upload_name); if (!$upload_result) { msgbox ($lang['all_info'], "Ошибка загрузки файла.<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); } else { /* --- Уменьшение картинки --- */ require_once ENGINE_DIR."/inc/makethumb.php"; $thumb = new thumbnail($upload_name); if ($thumb->size_auto(IMAGE_SIZE)) { $thumb->jpeg_quality($config['jpeg_quality']); $thumb->save($thumb_name); /* --- Удаление исходного файла --- */ if (file_exists($upload_name)) @unlink($upload_name); $upload_complete = true; } else { /* --- Если файл меньше размером чем IMAGE_SIZE --- */ rename($upload_name, $thumb_name); $upload_complete = true; } } } else { $stop = true; msgbox ($lang['all_info'], "Выбранный файл запрещён к закачке<br><a href=\"$config[http_home_url]\">Вернуться назад</a>"); } }; }; if ($stop == false) { $url = str_replace("http://", "", $site_url); $url = str_replace("www.", "", $url); // Проверка на наличие дубликатов ссылки $dupe_url = $db->query("SELECT id FROM ".PREFIX."_partner WHERE site_url LIKE '%$url%'"); if ($db->num_rows($dupe_url) > 0) { $stop = true; msgbox ($lang['all_info'], "Данный адрес сайта уже есть в базе.<br><a href=\"javascript:history.go(-1)\">Вернуться назад</a>"); } else { // --- Регистрируем --- // if ($upload_complete == true) { $db->query("INSERT INTO ".PREFIX."_partner (site_description, site_name, site_url, site_image, views, locked, ip) VALUES ('$site_desc', '$site_name', '$site_url', '$only_name', '0', '0', '$ip')"); } else { $db->query("INSERT INTO ".PREFIX."_partner (site_description, site_name, site_url, views, locked, ip) VALUES ('$site_desc', '$site_name', '$site_url', '0', '2', '$ip')"); }; clear_cache('partner'); // ------------------------------------------------------------------------- // Отправка письма админу (Уведомление о регистрации) // ------------------------------------------------------------------------- $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/plain; charset=\"{$config['charset']}\"\n"; $headers .= "From: \"{$config['home_title']}\" <{$config['admin_mail']}>\n"; $headers .= "Return-Path: {$config['admin_mail']}\n"; $headers .= "X-Priority: 3\n"; $headers .= "X-Mailer: DLE with PHP!\n"; $now = langdate($config['timestamp_active'], time()); $msg = <<<TEXT Время регистрации: {$now}\n Название: {$site_name}\n URL: {$site_url}\n Описание: {$site_desc}\n IP: {$ip}\n TEXT; @mail($config['admin_mail'], 'Регистрация сайта', $msg, $headers); // ---- mail end .... msgbox ($lang['all_info'], "Ваш сайт успешно зарегистрирован. Спасибо за сотрудничество!<br><a href=\"$config[http_home_url]\">Вернуться назад</a>"); } } }; // ---------------------------------------------------------------------------- // Форма добавления новой ссылки // ---------------------------------------------------------------------------- } elseif ($partner_action == "partner-form") { $sql_query = "SELECT site_name, site_url, site_description, site_image FROM ".PREFIX."_partner WHERE locked = '0' ORDER BY views DESC, clicks DESC"; $sql_result = $db->query($sql_query); $partners = "<table cellpadding=\"4\" cellspacing=\"0\" width=\"100%\">"; $all_count = $db->num_rows($sql_result); if ($all_count != 0) { $count = 0; $flag = false; while ($row = $db->get_row($sql_result)) { $site_name = stripslashes($row['site_name']); $site_link = "<a href=\"" . $row['site_url'] . "\" target=\"_blank\" class=\"stext\">" . $site_name . "</a>"; if ($flag == false) { $left_column .= $site_link . "<br/>"; $flag = true; } else { $right_column .= $site_link . "<br/>"; $flag = false; } }; $partners .= <<<HTML <tr> <td align="left" valign="top" class="stext">$left_column</td> <td align="right" valign="top" class="stext">$right_column</td> </tr> HTML; } else { $partners .= "<tr><td colspan=\"2\" align=\"center\" class=\"stext\">- нет данных -</td></tr>"; } $partners .= "</table>"; $tpl->load_template('partner.tpl'); $tpl->set('{partners}', $partners); $tpl->copy_template = '<!-- -->' . $tpl->copy_template . '<!-- the end partner form -->'; $tpl->compile('content'); }; ?> Цитата Ссылка на сообщение Поделиться на других сайтах
kpravda 102 Опубликовано: 17 декабря 2009 Рассказать Опубликовано: 17 декабря 2009 Менять кодировку, это же очевидно! Цитата Ссылка на сообщение Поделиться на других сайтах
TYMAH3003 0 Опубликовано: 17 декабря 2009 Рассказать Опубликовано: 17 декабря 2009 (изменено) Автор А где менять то если везде в БД стоит charset=windows-1251,,, в самом модуле где её изменить? Сама кодировка на сайте всё норм именно в блоке {partners} кодировка такая ????? ,, даже в админке при добавлении тоже ????? , или где то создаётся отдельная база данных на авто добавление ссылок в которой нужно изменить кодировку, только где она лежит хз? , и ещё наткнулся на два варианта скрипта в первом все имена {partner} а в другом {partnerS} добавлена буква S возможно я переписал содержимае файлов .htaccess, admin.php, index.php, init.php, engine.php, options.php, написал partner, но может это более старый модуль не для 8.2 , а затем залил файлы именно для 8.2 ,но там уже не partner ,а partnerS !!!но содержимае файлов .htaccess, admin.php, index.php, init.php, engine.php, options.php не переписал может это причина ????? ,, Подскажите кто знает в чём дело Изменено 17 декабря 2009 пользователем TYMAH3003 Цитата Ссылка на сообщение Поделиться на других сайтах
kpravda 102 Опубликовано: 17 декабря 2009 Рассказать Опубликовано: 17 декабря 2009 кодировку файлов модуля смотри, или сам дописывай ее Цитата Ссылка на сообщение Поделиться на других сайтах
TYMAH3003 0 Опубликовано: 17 декабря 2009 Рассказать Опубликовано: 17 декабря 2009 Автор кодировку файлов модуля смотри, или сам дописывай ее Ну я просто 0 в php найти строку charset=utf-8 и заменить на эту charset=windows-1251 я могу, но если их НЕТ то как дописать приведите небольшой пример, а то я совсем не шарю по этой части (((( Цитата Ссылка на сообщение Поделиться на других сайтах
kpravda 102 Опубликовано: 17 декабря 2009 Рассказать Опубликовано: 17 декабря 2009 $charst = "Content-Type: text/html; charset=windows-1251"; header($charst); Цитата Ссылка на сообщение Поделиться на других сайтах
TYMAH3003 0 Опубликовано: 17 декабря 2009 Рассказать Опубликовано: 17 декабря 2009 Автор $charst = "Content-Type: text/html; charset=windows-1251"; header($charst); А после какой строки добавлять ,, добавил в файл engine/modules/partners.php ничё не поменялось (( Цитата Ссылка на сообщение Поделиться на других сайтах
Al-x 7 Опубликовано: 17 декабря 2009 Рассказать Опубликовано: 17 декабря 2009 Ну я просто 0 в php найти строку charset=utf-8 и заменить на эту charset=windows-1251 я могу, но если их НЕТ то как дописать приведите небольшой пример, а то я совсем не шарю по этой части (((( ну судя по всему вы не одиноки в "0 php" $charst = "Content-Type: text/html; charset=windows-1251";header($charst); Ваш советчик в общем-то тоже из этой же серии. Проблема именно в кодировке базы данных. А именно таблицы, в которой хранится информация по ссылкам. везде в БД стоит charset=windows-125 не может быть такого, в таблица мускула совсем другой список доступных кодировок. нужно cp1251_general_ci выбирать. Цитата Ссылка на сообщение Поделиться на других сайтах
TYMAH3003 0 Опубликовано: 17 декабря 2009 Рассказать Опубликовано: 17 декабря 2009 Автор Ну я просто 0 в php найти строку charset=utf-8 и заменить на эту charset=windows-1251 я могу, но если их НЕТ то как дописать приведите небольшой пример, а то я совсем не шарю по этой части (((( ну судя по всему вы не одиноки в "0 php" $charst = "Content-Type: text/html; charset=windows-1251";header($charst); Ваш советчик в общем-то тоже из этой же серии. Проблема именно в кодировке базы данных. А именно таблицы, в которой хранится информация по ссылкам. везде в БД стоит charset=windows-125 не может быть такого, в таблица мускула совсем другой список доступных кодировок. нужно cp1251_general_ci выбирать. Я так и понял, что чушь прописывать в модуле кодировку. Да дело в базе данных которая создаётся модулем что ли,а подскади как тайти это в таблица мускула совсем другой список доступных кодировок. нужно cp1251_general_ci выбирать. Где искать это? Цитата Ссылка на сообщение Поделиться на других сайтах
Al-x 7 Опубликовано: 17 декабря 2009 Рассказать Опубликовано: 17 декабря 2009 Вариант 1 нажать на нужную таблиу, там нажать на Операции. И там смотреть кодировку. Дальше - опять же нажать на эту таблицу (нужно увидеть структуру таблицы, а не данные в ней. В разных панеля майадмина по-разному открывается таблица, если на неё нажать. У кого-то сразу видна структура, у кого-то - данные). Так вот - в структуре ищите все текстовые поля и смотрите какая у них кодировка. Тоже 1251 надо ставить. Варивнт 2. Скиньте сюда таблицу из установщика, попробуем код подредактировать. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
TYMAH3003 0 Опубликовано: 17 декабря 2009 Рассказать Опубликовано: 17 декабря 2009 Автор Вот что я увидел Всё сохранил базу сменил кодировку и всё пошло как Швейцарские часы, ато latin1 какой то, Огромное спс Al-x +1, не могу найти где + ставить надобы пожаловаться Админу, пусть модернизирует шаблон))) Правда написал на 5-ти форумах в топе яндекса, везде тишина только просмотры растут а ответы 0 ,, не зря всё же Вы Первые))) Цитата Ссылка на сообщение Поделиться на других сайтах
blaga 39 Опубликовано: 17 декабря 2009 Рассказать Опубликовано: 17 декабря 2009 плюсики справа снизу 1 Цитата Ссылка на сообщение Поделиться на других сайтах
vavan1955 0 Опубликовано: 25 апреля 2011 Рассказать Опубликовано: 25 апреля 2011 (изменено) Хоть тема и очень старая, тоже столкнулся с этой бедой. В инсталяционном файле не ср1251 и потому в таблице кодировка latin1 Я сделал бекап затем в дампе поменял кодировку и вновь сохранил базу. Ушло 3 минуты, всё встало на свои места. У меня другой вопрос. Как вывести страницу ссылок на главную и где можно посмотреть работу скрипта. Изменено 25 апреля 2011 пользователем vavan1955 Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.