| Kabak |
|
|---|---|
|
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. очистил кэш, но не помогло... не пускает, подлец Добавлено 9 минут спустя: пришлось брутально отключить строку в functions.php
5257 cot_plugin_active('hits') && cot_stat_inc('totalantihammer');
пустил на сайт , зашёл , почислил кэш и восстановил строку.
А всё из-за того, что проверял работу плагина и быстро обновлял страницу Dieser Beitrag wurde von Kabak (am 8. Juni 2023, 07:53, vor 2 Jahre) bearbeitet |
| webitproff |
|
|---|---|
|
вот мзфк )) аккаунт удален - не срослось с разработчиками
ушел на другой движок |
| Dayver |
|
|---|---|
#46863 Kabak: Все равно такая сработка защиты против хаммеринга не является корректной. А решить лучше не комментированием строки а добавлением такой проверки
if (function_exists('cot_stat_inc')) cot_stat_inc('totalantihammer');
На первый взгляд это встроенный баг потому создал заявку согласно вашему репорту
Pavlo Tkachenko aka Dayver
|
| Kabak |
|
|---|---|
|
А сколько мне пришлось бы ждать чтобы движок позволил мне войти с того IP ? Где прочитать про эту защиту ? Благодарю. |
| Dayver |
|
|---|---|
#46891 Kabak: Такой документации увы никогда не было. Хотя сама защита еще была когда Cotonti был Seditio а может даже и LDU - не помню давно это было но тогда защита был а запросов на её документирование не было А время ожидания зависит от настроек в панели администрирования Управление сайтом / Конфигурация / Безопасность Pavlo Tkachenko aka Dayver
|
| Kabak |
|
|---|---|
|
там противоречивые данные
непонятно, указывается количество хитов после которого пользователя блокирует ( на непонятный срок ) или это время в непонятных единицах на которое блокируется пользователь. Dieser Beitrag wurde von Kabak (am 10. Juni 2023, 20:17, vor 2 Jahre) bearbeitet |
| Kopusha |
|
|---|---|
в непонятных единицах на которое блокируется пользователь. 25 это в вьебитпроффах |
| Kabak |
|
|---|---|
|
немного юмора
|
| Alex300 |
|
|---|---|
Исправлено этим коммитом. Можно скачать обновленный functions.php из репозитория. Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english... Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/ |
| Kabak |
|
|---|---|
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 |
|
|---|---|
|
Если у вас нет функции strptime (насколько я понимаю она есть в базовых поставках php как минимум для линукса) код ниже пытается разобрать переданное ему время $date в переданном формате $format.
$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 |
|
|---|---|
|
Посмотрите functions.php новой редакции. PHP 8.1 ругается на любое упоминание в рнр функции strptime() по-моему это исправление с проверкой наличия функции strptime() не убирает сообщения PHP 8.1 о том, что функция depricated и этот if выполняется всегда когда грузится functions.php
Я чего-то не понимаю... и ваш ответ не понятен мне strptime() - функция РНР, а не Cotonti |
| Kopusha |
|
|---|---|
|
Если в РНР нет strptime то применяется из functions.php - это насколько я вижу. Насколько понятно по вашему сообщения - скорее всего у вас в PHP нет ее, наверное на 8.1 что то другое, я не могу проверить, я сижу на 7.3 и 7.4 все проекты. Added 39 seconds later: Подождем Alex))) |
| Kabak |
|
|---|---|
|
Вы же знаете РНР. Посмотрите functions.php , строка 3924
|
| Kort |
|
|---|---|
|
strftime -- стандартная функция php. Начиная с 8.1.0 считается устаревшей. Впилили ее в functions.php, видимо, из-за зависимости в cot_date2stamp()
SED.by - создание сайтов, разработка плагинов и тем для Котонти
|