mkev
+12
Репутация
0
Рейтинг
Зайдите в /include/code_gen/kcaptcha_config.php, и поправьте параметры так, как вам нужно.
Все эти файлы на сервере у вас лежат в дистрибутиве 1.10
просто броузер их не закачивает заново. Он смотри в кэш и видит, что недавно закачивал файлы с таким же именем с того же адреса.
А вы поменяли версию и начинаются проблемы.
Решение: В броузере жмете Ctrl-Shift-Del и чистите кэш.
просто броузер их не закачивает заново. Он смотри в кэш и видит, что недавно закачивал файлы с таким же именем с того же адреса.
А вы поменяли версию и начинаются проблемы.
Решение: В броузере жмете Ctrl-Shift-Del и чистите кэш.
Подобная проблема возникала у некоторых моих пользователей, экономящих трафик. CSS и javascript файлы не обновлялись.
Решилось ручной очисткой кэша броузера, ну или подождать пока кэш сам прокиснет.
Решилось ручной очисткой кэша броузера, ну или подождать пока кэш сам прокиснет.
Тяжелый вопрос.
Многие дамы в возрасте так не думают, и перестают писать в форум, особенно с мобильных.
В общем, в эпоху динамических IP и мобильной связи привязка в сессии к IP адресу — жесткое ограничение.
Многие дамы в возрасте так не думают, и перестают писать в форум, особенно с мобильных.
В общем, в эпоху динамических IP и мобильной связи привязка в сессии к IP адресу — жесткое ограничение.
На самом деле это не ошибка хостера, а достижение разработчиков Инстанта.
Сессия сейчас привязывается к IP.
В /core/user.class.php нужно редактировать функцию
например до такого состояния
Сессия сейчас привязывается к IP.
В /core/user.class.php нужно редактировать функцию
private function checkSpoofingSession() { // первый раз зашли $_SESSION['user_ip'] = $_SERVER['REMOTE_ADDR']; return true; } return $_SERVER['REMOTE_ADDR'] == $_SESSION['user_ip']; }
private function checkSpoofingSession() { return true; }
Есть не очень сложное решение (только для 404 ошибки при нескольких открытых вкладках).
Нужно модифицировать 2 файла.
1. /core/cms.php
строки 3063-3075
заменить/дополнить на
2. /core/classes/user.class.php
строки 1607-1621
заменить на
Цена: для каждого сообщения пользователя в течении сессии скрипт сохраняет 6 символьный код. Т.е. если у вас есть пользователи оставляющие пару тысяч реальных сообщений в течении сессии, то скрипт может серьезно подгрузить сервер. Мои пользователи больше 15 сообщений в день не генерируют!
Нужно модифицировать 2 файла.
1. /core/cms.php
строки 3063-3075
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** * Проверяет значение сессии в POST и сравнивает с текущим * @return bool */ public static function validateForm(){ if(!@$_POST['csrf_token']) { return false; } if($_POST['csrf_token'] == cmsUser::getCsrfToken()) { return true; } return false; }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** * Проверяет значение сессии в POST и сравнивает с текущим * @return bool */ public static function validateForm(){ if(!@$_POST['csrf_token']) { return false; } //if($_POST['csrf_token'] == cmsUser::getCsrfToken()) { return true; } if(cmsUser::checkCsrfToken($_POST['csrf_token'] )) { return true; } return false; } public static function generateRandomString($length = 32,$onlyDigitandAlfa = true) { $chars = 'abcdefghjiklmopqnrstuvwxyzACBDEFGIJHKLMNOPQRSUVWXTYZ0123456789'; if (!$onlyDigitandAlfa) { $chars.='*.-~'; } $string = ''; for ($i = 0; $i < $length; $i++) { } return $string; }
строки 1607-1621
// ============================================================================ // // ============================================================================ // public static function getCsrfToken(){ $csrf_token = self::sessionGet('csrf_token', 'security'); if($csrf_token) { return $csrf_token; } } public static function clearCsrfToken(){ return self::sessionDel('csrf_token', 'security'); }
// ============================================================================ // // ============================================================================ // public static function getCsrfToken(){ //$csrf_token = self::sessionGet('csrf_token', 'security'); //if($csrf_token) { return $csrf_token; } //return self::sessionPut('csrf_token', md5(uniqid().rand(0, 9999)), 'security'); return self::genCsrfToken(self::genCsrfTokenId()); } public static function checkCsrfToken($csrf_token){ $controlToken=self::genCsrfToken($tokenId); if ($controlToken==$csrf_token){ $csrf_tokens = self::sessionGet('csrf_token', 'security'); } self::sessionPut('csrf_token', $csrf_tokens , 'security'); return true; } return false; } public static function clearCsrfToken(){ //return self::sessionDel('csrf_token', 'security'); } public static function genCsrfToken($tokenId){ } public static function existCsrfTokenId($tokenId){ $csrf_tokens = self::sessionGet('csrf_token', 'security'); self::sessionPut('csrf_token', $csrf_tokens , 'security'); return false; } return true; } return false; } public static function genCsrfTokenId(){ $tokenId=cmsCore::generateRandomString(6); while(self::existCsrfTokenId($tokenId)) { $tokenId=cmsCore::generateRandomString(6); } return $tokenId; }