Board Statistics

Поддержка расширений, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с расширениями для phpBB, кроме относящихся к форуму Для авторов.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
MAKOMI
phpBB 1.4.3
Сообщения: 80
Зарегистрирован: 12.06.2015 2:28
Благодарил (а): 21 раз
Поблагодарили: 3 раза

Board Statistics

Сообщение MAKOMI » 11.11.2015 23:19

Название расширения: Board Statistics
Автор: John Peskens
Описание расширения: Расширение регистрирует все посещения пользователей и гостей. Очистка статистики производится по заданию cron. Тема на офф-сайте Board Statistics
Скачать: https://github.com/ForumHulp/statistics ... master.zip
GitHub repository: https://github.com/ForumHulp/statistics
Язык: Английский, Русский
1 Board statistics.jpg
2 Board statistics.jpg
3 Board statistics.jpg
4 Board statistics.jpg
5 Board statistics.jpg
Установил расширение. Так как на хостинге закрыты исходящие то расширение показывает Debug в верху страницы

Код: Выделить всё

[phpBB Debug] PHP Warning: in file [ROOT]/ext/forumhulp/statistics/event/listener.php on line 184: fsockopen(): unable to connect to http://www.ip-api.com:80 (Permission denied)
1)Как отключить Debug чтобы его не видели пользователи но видел админ? (если нельзя то пункт 2)
2)Что можно отключить или закомментировать в расширении чтобы не было Debug-а?
Последний раз редактировалось Sheer 11.11.2015 23:22, всего редактировалось 2 раза.

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11495
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

Re: Как отключить Debug?

Сообщение Sheer » 11.11.2015 23:21

MAKOMI писал(а): отключить или закомментировать в расширении
Проверку версии.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
MAKOMI
phpBB 1.4.3
Сообщения: 80
Зарегистрирован: 12.06.2015 2:28
Благодарил (а): 21 раз
Поблагодарили: 3 раза

Re: Как отключить Debug?

Сообщение MAKOMI » 12.11.2015 0:25

Дико извиняюсь час промучился хотел сам разобраться но не вышло :(
Подскажите в каком именно файле и в какой строке закомментировать :oops:

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11495
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

Re: Как отключить Debug?

Сообщение Sheer » 12.11.2015 0:30

MAKOMI писал(а): in file [ROOT]/ext/forumhulp/statistics/event/listener.php on line 184
Отправлено спустя 1 минуту 23 секунды:
Ведь перед носом. Английски по белому написано.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
MAKOMI
phpBB 1.4.3
Сообщения: 80
Зарегистрирован: 12.06.2015 2:28
Благодарил (а): 21 раз
Поблагодарили: 3 раза

Re: Как отключить Debug?

Сообщение MAKOMI » 12.11.2015 0:45

:oops: :oops: :oops:
До сих пор с ребенком делаю уроки нервы и внимание ни к черту
Огромное спасибо за помощь :!: :!: :!:

Аватара пользователя
MAKOMI
phpBB 1.4.3
Сообщения: 80
Зарегистрирован: 12.06.2015 2:28
Благодарил (а): 21 раз
Поблагодарили: 3 раза

Re: Как отключить Debug?

Сообщение MAKOMI » 12.11.2015 13:46

Это не проверка версии а проверка местоположения пользователя через ресурс www.ip-api.com и вывод в таблицу в колонке СТРАНА название страны и флага.
таблица.jpg
Как правильно закомментировать в этом коде? А то все мои попытки приводят вот к этому:
ошибка.jpg
ошибка.jpg (4.98 КБ) 3892 просмотра

Код: Выделить всё

<?php
/**
*
* @package Statistics
* @copyright (c) 2014 ForumHulp.com
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/

namespace forumhulp\statistics\event;

/**
* @ignore
*/
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
	protected $config;
	protected $helper;
	protected $user;
	protected $db;
	protected $online_table;
	protected $config_table;
	protected $se_table;
	protected $php_ext;

	/**
    * Constructor
    *
    * @param \phpbb\controller\helper    $helper        Controller helper object
    */
	public function __construct(\phpbb\config\config $config, \phpbb\controller\helper $helper, \phpbb\user $user, \phpbb\db\driver\driver_interface $db, $online_table, $config_table, $se_table, $php_ext)
	{
		$this->config = $config;
		$this->helper = $helper;
		$this->user = $user;
		$this->db = $db;
		$this->online_table = $online_table;
		$this->config_table = $config_table;
		$this->se_table = $se_table;
		$this->php_ext = $php_ext;
	}

	static public function getSubscribedEvents()
	{
		return array(
			'core.page_footer'	=> 'get_ref',
		);
	}

	/**
	 * @param object $event The event object
	 * @return null
	 * @access public
	 */

	public function get_modules()
	{
		global $db, $user;
		$user->add_lang(array('ucp', 'mcp', 'common'));
		$modules = array();
		$sql = 'SELECT forum_id, forum_name FROM ' . FORUMS_TABLE;
		$result = $db->sql_query($sql);
		while ($row = $db->sql_fetchrow($result))
		{
			$modules[$row['forum_id']] = $row['forum_name'];
		}
		$sql = 'SELECT module_langname FROM ' . MODULES_TABLE . ' WHERE module_class = "ucp" OR module_class = "mcp"';
		$result = $db->sql_query($sql);
		while ($row = $db->sql_fetchrow($result))
		{
			(isset($user->lang[$row['module_langname']])) ? $modules[$row['module_langname']] = $user->lang[$row['module_langname']] : null;
		}
		return $modules;
	}

	function get_ref($event)
	{
		global $request, $template, $cache;

		if ($this->user->page['script_path'] != '/adm/')
		{
			$ref_url = strtolower($this->user->referer);

			if (!empty($ref_url) && (strpos($ref_url, $this->config['server_name']) === false))
			{
				if (strpos($ref_url, 'sid=') !== false)
				{
					$ref_url = preg_replace('/(\?)?(&|&)?sid=[a-z0-9]+/', '', $ref_url);
					$ref_url = preg_replace("/$this->php_ext(&|&)+?/", "$this->php_ext?", $ref_url);
				}

				$data['referer'] = parse_url(htmlspecialchars(strip_tags($ref_url)));

				$sql = 'SELECT DISTINCT query FROM ' . $this->se_table . ' WHERE name like "%' . substr($data['referer']['host'], 0, strrpos($data['referer']['host'], '.')) . '"';
				$result = $this->db->sql_query($sql);
				$row = $this->db->sql_fetchrow($result);

				if ($row && strpos($data['referer']['query'], $row['query'] . '=') !== false)
				{
					parse_str($data['referer']['query'], $query);
					$searchwords = trim($query[$row['query']]);
					$searchwords = str_replace(array('%3d','%27'), array('',''), $searchwords);
					$searchwords = str_replace(array('=','\''), array('',''), $searchwords);
					$searchwords = urldecode($searchwords);
					$searchwords = str_replace(',', ' ', $searchwords);
					$searchwords = str_replace('+', ' ', $searchwords);
				}
			} else
			{
				$ref_url = '';
			}

			if ($this->user->page['forum'] && is_numeric($this->user->page['forum']))
			{
				$data['module'] = $this->user->page['forum'];
			} else if ($this->user->page['page_dir'] == '' && !$request->is_set('i'))
			{
				$module_pages = array('index.php' => 'FORUM_INDEX', 'faq.php' => 'VIEWING_FAQ', 'mcp.php' => 'VIEWING_MCP', 'search.php' => 'SEARCHING_FORUMS', 'viewonline.php',  'VIEWING_ONLINE', 'memberlist.php' => 'VIEWING_MEMBERS', 'ucp.php' => 'VIEWING_UCP');

				$sql = 'SELECT custom_pages FROM ' . $this->config_table;
				$result = $this->db->sql_query($sql, 3000);
				$row = $this->db->sql_fetchfield('custom_pages');
				$row = unserialize($row);

				if (sizeof($row) > 0)
				{
					foreach($row as $key => $value)
					{
						$module_pages[$key] = $value;
					}
				}
				if (strpos($this->user->page['page_name'], 'app.php') === false)
				{
					$data['module'] = (isset($module_pages[$this->user->page['page_name']])) ? $module_pages[$this->user->page['page_name']] : null;
				} else
				{
					$pagename = substr($this->user->page['page_name'], 0, strrpos ($this->user->page['page_name'], '/'));
					$data['module'] = (isset($module_pages[$pagename])) ? $module_pages[$pagename] : null;
				}
			} else
			{
				if (is_numeric($request->variable('i', '')))
				{
					$sql = 'SELECT module_langname FROM ' . MODULES_TABLE . ' WHERE module_id = ' . $request->variable('i', 0);
					$result = $this->db->sql_query($sql);
					$module_langname = $this->db->sql_fetchfield('module_langname');
					$data['module'] = $module_langname;
				} else
				{
					$modules = $this->get_modules();
					(in_array(strtoupper($request->variable('i', '')), $modules)) ? $data['module'] = strtoupper($request->variable('i', '')) : null;
				}
			}

			if (isset($data['module']) && $data['module'] !== '')
			{
				if (($this->ip_cache = $cache->get('_ip_cache')) !== false)
				{
					if (!isset($this->ip_cache[$this->user->data['session_ip']]))
					{
						if ($this->user->data['session_ip'] != '127.0.0.1' && fsockopen('www.ip-api.com', 80))
						{
							$ip_query = file_get_contents('http://ip-api.com/json/' . $this->user->data['session_ip'] . '?fields=status,countryCode,reverse');
							$ip_aray = json_decode($ip_query, true);

							$this->ip_cache[$this->user->data['session_ip']]['countryCode'] = strtolower($ip_aray['countryCode']);
							$this->ip_cache[$this->user->data['session_ip']]['reverse'] = strtolower($ip_aray['reverse']);
							$this->ip_cache = array_slice($this->ip_cache, -50, 50, true);
							$cache->put('_ip_cache', $this->ip_cache);
						} else
						{
							$this->ip_cache[$this->user->data['session_ip']]['reverse'] = @gethostbyaddr(($this->user->data['session_ip']));
							$aray = explode('.', $this->ip_cache[$this->user->data['session_ip']]['reverse']);
							$this->ip_cache[$this->user->data['session_ip']]['countryCode'] = ($this->user->data['session_ip'] == '127.0.0.1') ? 'lo' : strtolower($aray[sizeof($aray) -1]);
						}
					}
				} else
				{
					if ($this->user->data['session_ip'] != '127.0.0.1' && fsockopen('www.ip-api.com', 80))
					{
						$ip_query = file_get_contents('http://ip-api.com/json/' . $this->user->data['session_ip'] . '?fields=status,countryCode,reverse');
						$ip_aray = json_decode($ip_query, true);

						$this->ip_cache[$this->user->data['session_ip']]['countryCode'] = strtolower($ip_aray['countryCode']);
						$this->ip_cache[$this->user->data['session_ip']]['reverse'] = strtolower($ip_aray['reverse']);

						$cache->put('_ip_cache', $this->ip_cache);
					} else
					{
						$this->ip_cache[$this->user->data['session_ip']]['reverse'] = @gethostbyaddr(($this->user->data['session_ip']));
						$aray = explode('.', $this->ip_cache[$this->user->data['session_ip']]['reverse']);
						$this->ip_cache[$this->user->data['session_ip']]['countryCode'] = ($this->user->data['session_ip'] == '127.0.0.1') ? 'lo' : strtolower($aray[sizeof($aray) -1]);
					}
				}

				$data['host'] = $this->ip_cache[$this->user->data['session_ip']]['reverse'];
				$data['domain'] = strtolower($this->ip_cache[$this->user->data['session_ip']]['countryCode']);

				$data['domain'] = (!file_exists('./ext/forumhulp/statistics//adm/style/images/flags/' . $data['domain'] . '.png')) ? 'un' : $data['domain'];

				if (!$request->is_set($this->config['cookie_name'] . '_statistics_res', \phpbb\request\request_interface::COOKIE))
				{
					$template->assign_vars(array('ACOOKIE' => true, 'COOKIENAME' => $this->config['cookie_name']));
					$data['screen_res'] = '1920x1080x24';
				} else
				{
					$data['screen_res'] = $request->variable($this->config['cookie_name'] . '_statistics_res', '1920x1080x24', false, \phpbb\request\request_interface::COOKIE);
				}

				$fields = array(
					'time'			=> time(),
					'uname'			=> $this->user->data['username'],
					'ugroup'		=> (int) $this->user->data['group_id'],
					'agent'			=> $this->user->browser,
					'ip_addr'		=> $this->user->data['session_ip'],
					'host'			=> $data['host'],
					'domain'		=> $data['domain'],
					'module'		=> $data['module'],
					'scr_res'		=> $data['screen_res'],
					'referer'		=> isset($ref_url) ? $ref_url: '',
					'page'			=> $this->user->page['page'],
					'se_terms'		=> isset($searchwords) ? $searchwords: '',
				);
				$sql = 'INSERT INTO ' . $this->online_table . ' ' . $this->db->sql_build_array('INSERT', $fields);
				$this->db->sql_query($sql);
			}
		}
	}
}

Аватара пользователя
LavIgor
Поддержка
Поддержка
Сообщения: 3452
Зарегистрирован: 28.04.2014 8:16
Благодарил (а): 38 раз
Поблагодарили: 926 раз

Re: Как отключить Debug?

Сообщение LavIgor » 13.11.2015 0:16

MAKOMI писал(а): Как правильно закомментировать в этом коде?
Поставьте @ перед fsockopen.
Это уберёт сообщение об ошибке, при этом код запроса выполняться не будет, т.к. функция проверяется в условии if.

А вообще попробуйте заменить fsockopen на @fopen (заменив 80 на 'r'), поскольку в самом коде сокеты не используются.

Аватара пользователя
MAKOMI
phpBB 1.4.3
Сообщения: 80
Зарегистрирован: 12.06.2015 2:28
Благодарил (а): 21 раз
Поблагодарили: 3 раза

Re: Как отключить Debug?

Сообщение MAKOMI » 13.11.2015 1:07

При первом варианте если заходить под админом работает тока захожу под пользователем получаю следующее:

Код: Выделить всё

SQL ERROR [ mysql4 ]

Data too long for column 'uname' at row 1 [1406]

SQL

INSERT INTO phpbb_statistics_online (time, uname, ugroup, agent, ip_addr, host, domain, module, scr_res, referer, page, se_terms) VALUES (1447365736, 'Мазур Константин Михайлович', 10, 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36', '92.60.178.79', '92.60.178.79', 'un', 'FORUM_INDEX', '1024x600x24', '', 'index.php', '')

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 855
CALL: trigger_error()

FILE: [ROOT]/phpbb/db/driver/mysql.php
LINE: 181
CALL: phpbb\db\driver\driver->sql_error()

FILE: [ROOT]/phpbb/db/driver/factory.php
LINE: 329
CALL: phpbb\db\driver\mysql->sql_query()

FILE: [ROOT]/ext/forumhulp/statistics/event/listener.php
LINE: 230
CALL: phpbb\db\driver\factory->sql_query()

FILE: (not given by php)
LINE: (not given by php)
CALL: forumhulp\statistics\event\listener->get_ref()

FILE: [ROOT]/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php
LINE: 164
CALL: call_user_func()

FILE: [ROOT]/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php
LINE: 53
CALL: Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()

FILE: [ROOT]/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php
LINE: 167
CALL: Symfony\Component\EventDispatcher\EventDispatcher->dispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 60
CALL: Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 46
CALL: phpbb\event\dispatcher->dispatch()

FILE: [ROOT]/includes/functions.php
LINE: 5386
CALL: phpbb\event\dispatcher->trigger_event()

FILE: [ROOT]/index.php
LINE: 207
CALL: page_footer()
Восстановлю форум попробую вариант №2

Отправлено спустя 14 минут 31 секунду:
Второй метод тоже кидает в SQL ERROR

Отправлено спустя 1 минуту 21 секунду:
А вообще можно отключить Debug чтобы его не видели пользователи но видел админ?

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11495
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

Re: Как отключить Debug?

Сообщение Sheer » 13.11.2015 1:39

MAKOMI писал(а): А вообще можно отключить Debug чтобы его не видели пользователи но видел админ?
Нет. А что у расширения никаких настроек типа отключения проверки местоположения пользователя нет?
Ну можно поковырять экст и выпилить оттуда этот кусок или сделать туннель, через который пролезть на www.ip-api.com
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
MAKOMI
phpBB 1.4.3
Сообщения: 80
Зарегистрирован: 12.06.2015 2:28
Благодарил (а): 21 раз
Поблагодарили: 3 раза

Re: Как отключить Debug?

Сообщение MAKOMI » 13.11.2015 1:53

Настроек отключения нет :(
Тунель прокинуть тоже нельзя заблокированно :(
Могу дать доступ к тестовому форуму

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11495
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

Re: Как отключить Debug?

Сообщение Sheer » 13.11.2015 1:57

А может проще хостинг сменить?
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
MAKOMI
phpBB 1.4.3
Сообщения: 80
Зарегистрирован: 12.06.2015 2:28
Благодарил (а): 21 раз
Поблагодарили: 3 раза

Re: Как отключить Debug?

Сообщение MAKOMI » 13.11.2015 2:01

:D
Бесплатного лучшего или такого же по параметрам к сожалению нет.
У всех бесплатных свои бока. У моего это закрытые исходящие.

Аватара пользователя
LavIgor
Поддержка
Поддержка
Сообщения: 3452
Зарегистрирован: 28.04.2014 8:16
Благодарил (а): 38 раз
Поблагодарили: 926 раз

Re: Как отключить Debug?

Сообщение LavIgor » 13.11.2015 2:10

MAKOMI писал(а): При первом варианте
Это если собачку поставить?
Так она никоим образом не связана с SQL Error.
Посмотрите ограничение столбца uname, попробуйте задать ему тип TEXT.

Аватара пользователя
MAKOMI
phpBB 1.4.3
Сообщения: 80
Зарегистрирован: 12.06.2015 2:28
Благодарил (а): 21 раз
Поблагодарили: 3 раза

Re: Как отключить Debug?

Сообщение MAKOMI » 13.11.2015 2:19

Что первый вариант что второй вариант вызывает SQL Error.
Но при определенном условии.
Под админом захожу все ок. дебага нет по форуму лажу. Тока захожу под пользователем сразу SQL Error

Отправлено спустя 3 минуты 40 секунд:
Блин мне из кучи всяких там прибамбасов из этого расширение всего лишь надо когда зашел пользователь и на какие страницы заходил.

Перенесено из форума Поддержка phpBB 3.1.x в форум Поддержка расширений для phpBB 3.1.x 13.11.2015 2:28 модератором Sheer

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11495
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

Re: Board Statistics

Сообщение Sheer » 13.11.2015 2:35

LavIgor писал(а): Посмотрите ограничение столбца uname
VARCHR 25 Автор пожадничал :D
MAKOMI, Замени на VARCHAR 255
LavIgor писал(а): Поставьте @ перед fsockopen.
и не парься.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Вернуться в «Поддержка расширений для phpBB»