Иван Градов 0 Опубликовано 11 февраля, 2009 Жалоба Share Опубликовано 11 февраля, 2009 учет показов баннеров напрочь вешат сервер БД 10/02/2009 16:02:55 | 1040 - Too many connections | connect | /affiliate_show_banner.php?ref=78&affiliate_banner_id=810/02/2009 16:02:58 | 1040 - Too many connections | connect | /affiliate_show_banner.php?ref=77&affiliate_banner_id=4 10/02/2009 16:02:13 | 1040 - Too many connections | connect | /affiliate_show_banner.php?ref=78&affiliate_banner_id=8 10/02/2009 16:02:13 | 1040 - Too many connections | connect | /affiliate_show_banner.php?ref=42&affiliate_banner_id=4 как отключить учетпоказов, оставив только учет кликов? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 11 февраля, 2009 Жалоба Share Опубликовано 11 февраля, 2009 --- Ссылка на сообщение Поделиться на другие сайты
ABerezin 0 Опубликовано 11 февраля, 2009 Жалоба Share Опубликовано 11 февраля, 2009 Он не вешает - сервер просто не даёт подключиться, тем самым спасаясь от перегрузки. Если affiliate_show_banner.php не может подключиться к базе, то ему просто неоткуда взять адрес картинки. Так что предпосылка неверна - дело не в учёте показов. Решение только одно - кэширование. Саша! 1. /inc/vam_display_banner.inc.php в affiliate_show_banner.php не используется. 2. Ошибка возникает при connect, т.е. задолго до каких-либо запросов к базе и вызовах других функций. Ссылка на сообщение Поделиться на другие сайты
Иван Градов 0 Опубликовано 11 февраля, 2009 Автор Жалоба Share Опубликовано 11 февраля, 2009 в учете. там происходит так: сервер ТАК засирается учетом показов, что уже не может отвечать на выдачу картинок... до 20 вызовов баннеров в секунду происходит... за полгода таблица учета показов выросла до 250 метров извиняюсь: не так поставил акценты - учет показов баннеров на сайтах партнеров Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 11 февраля, 2009 Жалоба Share Опубликовано 11 февраля, 2009 Ой, пардон, невнимательно посмотрел на текст ошибки, думал обычные баннеры, а не партнёрские. т.к. показ баннера делается через скрипт affiliate_show_banner.php, что в корне, как насколько я помню, в принципе, что б не учитывались показы может просто партнёрам html-код давать с обычным img src тэгом, не используя скрипт. т.е. просто html код будет примерно: <a href="http://vamshop.loc/product_info.php?ref=1&products_id=1&affiliate_banner_id=1" target="_blank"><img src="http://vamshop.loc/images/kartinka-bannera.gif" border="0" alt="Товар"></a>[/code] вместо стандартного: [code]<a href="http://vamshop.loc/product_info.php?ref=1&products_id=1&affiliate_banner_id=1" target="_blank"><img src="http://vamshop.loc/affiliate_show_banner.php?ref=1&affiliate_pbanner_id=1" border="0" alt="Товар"></a> Ссылка на сообщение Поделиться на другие сайты
ABerezin 0 Опубликовано 11 февраля, 2009 Жалоба Share Опубликовано 11 февраля, 2009 Какой ты упрямый! Ещё раз. Дело не в учёте. Чтобы affiliate_show_banner.php получил имя картинки с банером ему нужно сделать запрос в БД. Чтобы сделать запрос, нужно законнектиться. Вот тут его сервер БД и не пускает, потому что уже коннектов больше допустимого. А если-бы пустил, то affiliate_show_banner.php получил-бы имя картинки, сформировал бы её адрес, увеличил-бы счётчик показа, закрыл коннект к базе, и вывел-бы картинку. Размер таблицы учёта показов на количество доступных коннектов не влияет! Ссылка на сообщение Поделиться на другие сайты
Иван Градов 0 Опубликовано 11 февраля, 2009 Автор Жалоба Share Опубликовано 11 февраля, 2009 я вот про что пишу: мне как раз и надо просто отдать баннер без записи в БД. тогда будет отдавать по запросу нормально: там при запросе 3\4 времени сжирает эта запись увеличения счетчика показа... вот мне и надо отключить ее - не надо считать... тогда будет успевать отдавать картинки... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 11 февраля, 2009 Жалоба Share Опубликовано 11 февраля, 2009 Так я ж об этом примерно и написал. Просто в affiliate_banners.php замени все: <img src="' . HTTP_SERVER . DIR_WS_CATALOG . FILENAME_AFFILIATE_SHOW_BANNER . '?ref=' . $_SESSION['affiliate_id'] . '&affiliate_banner_id=' . $ban_id . '" border="0" alt="' . $affiliate_banners['affiliate_banners_title'] . '">[/code] на: [code]<img src="' . HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_IMAGES . $affiliate_banners['affiliate_banners_image'] . '" border="0" alt="' . $affiliate_banners['affiliate_banners_title'] . '"> Что б не через скрипт шёл показ баннера. Только нужно ведь просить уже разместивших код поменять его. Ссылка на сообщение Поделиться на другие сайты
Гость Евгений Опубликовано 11 февраля, 2009 Жалоба Share Опубликовано 11 февраля, 2009 Можно убрать код, который отвечает за запись статистики. в файле affiliate_show_banner.php попробовать убрать следующий код: if ($affiliate_id) { $banner_stats_query = vam_db_query("select * from " . TABLE_AFFILIATE_BANNERS_HISTORY . " where affiliate_banners_id = '" . $banner_id . "' and affiliate_banners_products_id = '" . $products_id ."' and affiliate_banners_affiliate_id = '" . $affiliate_id. "' and affiliate_banners_history_date = '" . $today . "'"); if ($banner_stats_array = vam_db_fetch_array($banner_stats_query)) { vam_db_query("update " . TABLE_AFFILIATE_BANNERS_HISTORY . " set affiliate_banners_shown = affiliate_banners_shown + 1 where affiliate_banners_id = '" . $banner_id . "' and affiliate_banners_affiliate_id = '" . $affiliate_id. "' and affiliate_banners_products_id = '" . $products_id ."' and affiliate_banners_history_date = '" . $today . "'"); } else { vam_db_query("insert into " . TABLE_AFFILIATE_BANNERS_HISTORY . " (affiliate_banners_id, affiliate_banners_products_id, affiliate_banners_affiliate_id, affiliate_banners_shown, affiliate_banners_history_date) VALUES ('" . $banner_id . "', '" . $products_id ."', '" . $affiliate_id. "', '1', '" . $today . "')"); } } Ссылка на сообщение Поделиться на другие сайты
Иван Градов 0 Опубликовано 11 февраля, 2009 Автор Жалоба Share Опубликовано 11 февраля, 2009 о! это кое-что... если я уберу этот код учет кликов останется? Ссылка на сообщение Поделиться на другие сайты
ABerezin 0 Опубликовано 11 февраля, 2009 Жалоба Share Опубликовано 11 февраля, 2009 Учёт не пострадает. Учитывается заход на сайт с affiliate_banner_id Ссылка на сообщение Поделиться на другие сайты
Иван Градов 0 Опубликовано 11 февраля, 2009 Автор Жалоба Share Опубликовано 11 февраля, 2009 спаисбо, помогло :) пока я тут переписывался, магазин висел... (час пик, в магазине по 10-15 человек пасется + час пик на партнерских сайтах)... как только внес изменения всё заработало... посмотрим чуть позднее, как это на статистике партнерской отразится. Ссылка на сообщение Поделиться на другие сайты
ABerezin 0 Опубликовано 11 февраля, 2009 Жалоба Share Опубликовано 11 февраля, 2009 Сашин вариант лучше - вообще не будет обращений к БД. Только перегенерить банеры придётся. В affiliate_configure.php нужно поставить: define('AFFILIATE_KIND_OF_BANNERS','1'); Тогда будут генериться прямые ссылки на картинки. Ссылка на сообщение Поделиться на другие сайты
Иван Градов 0 Опубликовано 11 февраля, 2009 Автор Жалоба Share Опубликовано 11 февраля, 2009 Сашин вариант лучше - вообще не будет обращений к БД. Только перегенерить банеры придётся. В affiliate_configure.php нужно поставить: define('AFFILIATE_KIND_OF_BANNERS','1'); Тогда будут генериться прямые ссылки на картинки. угу. и уговорить примерно 200 партнеров сделать то же самое и заменить код на примерно 500 сайтах? боюсь вместо этого я лишусь партнеров... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 12 февраля, 2009 Жалоба Share Опубликовано 12 февраля, 2009 Так совмести оба варианта, для существующих уменьшишь обращения к базе, а новые будут получать код вообще без обращения к скрипту при загрузке баннера. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения