Forums / National / Russian / Тех. поддержка / Сайт лежит

12>>>

Kabak
#1 2023-06-08 07:43

Fatal error: Uncaught Error: Call to undefined function cot_stat_inc() in /var/www/apcfix/system/functions.php:5257 Stack trace: #0 /var/www/apcfix/system/common.php(560): cot_shield_hammer() #1 /var/www/apcfix/index.php(94): require_once('...') #2 {main} thrown in /var/www/apcfix/system/functions.php on line 5257

 

Не могу зайти на сайт с конкретного IP

 

Как лечить ?

 

Могу зайти через VPN. очистил кэш, но не помогло... не пускает, подлец smiley

Добавлено 9 минут спустя:

пришлось брутально отключить строку в functions.php

5257	cot_plugin_active('hits') && cot_stat_inc('totalantihammer');

пустил на сайт , зашёл  , почислил кэш и восстановил строку. 

 

А всё из-за того, что проверял работу плагина и быстро обновлял страницу devil

This post was edited by Kabak (2023-06-08 07:53, 10 months ago)
webitproff
#2 2023-06-08 09:32

вот мзфк ))

аккаунт удален - не срослось с разработчиками
ушел на другой движок
Dayver
#3 2023-06-10 03:17
#46863 Kabak:

Добавлено 9 минут спустя:

пришлось брутально отключить строку в functions.php

5257	cot_plugin_active('hits') && cot_stat_inc('totalantihammer');

пустил на сайт , зашёл  , почислил кэш и восстановил строку. 

А всё из-за того, что проверял работу плагина и быстро обновлял страницу devil

Все равно такая сработка защиты против хаммеринга не является корректной. А решить лучше не комментированием строки а добавлением такой проверки

 if (function_exists('cot_stat_inc')) cot_stat_inc('totalantihammer');

На первый взгляд это встроенный баг потому создал заявку согласно вашему репорту

 

Pavlo Tkachenko aka Dayver
Kabak
#4 2023-06-10 04:25

А сколько мне пришлось бы ждать чтобы движок позволил мне войти с того IP ?  Где прочитать про эту защиту ?

Благодарю.

Dayver
#5 2023-06-10 05:38
#46891 Kabak:

А сколько мне пришлось бы ждать чтобы движок позволил мне войти с того IP ?  Где прочитать про эту защиту ?

Благодарю.

Такой документации увы никогда не было. Хотя сама защита еще была когда Cotonti был Seditio а может даже и LDU - не помню давно это было но тогда защита был а запросов на её документирование не было laugh .

А время ожидания зависит от настроек в панели администрирования Управление сайтом / Конфигурация / Безопасность 

Pavlo Tkachenko aka Dayver
Kabak
#6 2023-06-10 06:45

там противоречивые данные 

непонятно, указывается количество хитов после которого пользователя блокирует ( на непонятный срок ) или это время в непонятных единицах на которое блокируется пользователь.

This post was edited by Kabak (2023-06-10 20:17, 10 months ago)
Kopusha
#7 2023-06-10 07:05
в непонятных единицах на которое блокируется пользователь.

25 это в вьебитпроффах

Kabak
#8 2023-06-10 07:05

немного юмора 

Alex300
#9 2023-06-11 13:18

Fatal error: Uncaught Error: Call to undefined function cot_stat_inc() in /var/www/apcfix/system/functions.php:5257 Stack trace: #0 /var/www/apcfix/system/common.php(560): cot_shield_hammer() #1 /var/www/apcfix/index.php(94): require_once('...') #2 {main} thrown in /var/www/apcfix/system/functions.php on line 5257

Исправлено этим коммитом. Можно скачать обновленный functions.php из репозитория.

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
Kabak
#10 2023-06-12 09:59
if (!function_exists('strptime'))
{
    /**
     * strptime() for Windows
     * @author ex/yks toolkit
     * @license MIT
     * @param string $date
     * @param string $format
     * @return boolean
     *
     * @deprecated This function has been DEPRECATED as of PHP 8.1.0. Relying on this function is highly discouraged.
     */
	function strptime($date, $format)
	{
		$masks = array(
			'%d' => '(?P<d>[0-9]{2})',
			'%m' => '(?P<m>[0-9]{2})',
			'%Y' => '(?P<Y>[0-9]{4})',
			'%H' => '(?P<H>[0-9]{2})',
			'%M' => '(?P<M>[0-9]{2})',
			'%S' => '(?P<S>[0-9]{2})'
		);

		$rexep = "#" . strtr(preg_quote($format), $masks) . "#";
		if (!preg_match($rexep, $date, $out))
			return false;

		$ret = array(
			"tm_sec" => (int) $out['S'],
			"tm_min" => (int) $out['M'],
			"tm_hour" => (int) $out['H'],
			"tm_mday" => (int) $out['d'],
			"tm_mon" => $out['m'] ? $out['m'] - 1 : 0,
			"tm_year" => $out['Y'] > 1900 ? $out['Y'] - 1900 : 0,
		);
		return $ret;
	}
}

можете пояснить про этот код в functions.php ?

он в какой функции или он всегда отрабатывает ?

Kopusha
#11 2023-06-12 10:33

Если у вас нет функции strptime (насколько я понимаю она есть в базовых поставках php как минимум для линукса) код ниже пытается разобрать переданное ему время $date в переданном формате $format.
Например из 12-06-2023 10:30:45 можно получить все что угодно (передав формат). 

$dateString = "12-06-2023 10:30:45";
$formatString = "%d-%m-%Y %H:%M:%S";
$result = strptime($dateString, $formatString);

if ($result !== false) {
    echo "Год: " . ($result['tm_year'] + 1900) . "<br>";
    echo "Месяц: " . ($result['tm_mon'] + 1) . "<br>";
    echo "День: " . $result['tm_mday'] . "<br>";
    echo "Час: " . $result['tm_hour'] . "<br>";
    echo "Минуты: " . $result['tm_min'] . "<br>";
    echo "Секунды: " . $result['tm_sec'] . "<br>";
} else {
    echo "Ошибка.";
}

 

Added 1 minute later:

#46898 Kabak:
 

он в какой функции или он всегда отрабатывает ?

Он и есть функция, отрабатывает там где вызывается функция strptime

Kabak
#12 2023-06-12 10:46

Kopusha,

Посмотрите  functions.php  новой редакции.

PHP 8.1 ругается на любое упоминание в рнр функции strptime()    

по-моему это исправление с проверкой наличия функции strptime()  не убирает сообщения PHP 8.1 о том, что функция depricated и этот if выполняется всегда когда грузится functions.php

 

Я чего-то не понимаю...  и ваш ответ не понятен мне   strptime() - функция РНР, а не Cotonti

Kopusha
#13 2023-06-12 10:56

Если в РНР нет strptime то применяется из functions.php - это насколько я вижу.

Насколько понятно по вашему сообщения - скорее всего у вас в PHP нет ее, наверное на 8.1 что то другое, я не могу проверить, я сижу на 7.3 и 7.4 все проекты.
И так же не могу сказать про ругань - что могу предположить - пхп 8 видит что strptime deprecated и ругаеться ДО вызова strptime из функций движка. 
Но тут я уже гадаю.

Added 39 seconds later:

Подождем Alex)))

Kabak
#14 2023-06-12 11:18

Вы же знаете РНР.  Посмотрите functions.php , строка 3924

 

Kort
#15 2023-06-12 11:30

strftime -- стандартная функция php. Начиная с 8.1.0 считается устаревшей. Впилили ее в functions.php, видимо, из-за зависимости в cot_date2stamp()

 

SED.by - создание сайтов, разработка плагинов и тем для Котонти

12>>>