Forums / National / Russian / Тех. поддержка / На случай если вы обновили apache

Kopusha
#1 2023-06-05 06:26

Возможно это сбережет кому то немного времени. В разных примерах .htaccess (например тут https://www.cotonti.com/ru/docs/admin/sef_urls) этот момент отсутствует, так как в апаче все работало, сейчас даже AllowEncodedSlashes On не помогает.

При обновлении apache до версий 2.4.56-1 и видимо выше ссылки с пробелом декодируют пробел в %20 но все равно возвращают 403 ошибку. Не надо воевать с апачем, просто в .htaccess измените общее правило (например как тут https://www.cotonti.com/ru/docs/admin/sef_urls в комментарии)

# All the rest goes through standard rewrite gateway
RewriteRule ^([^?]+) index.php?rwr=$1 [QSA,NC,NE,L]

на

# All the rest goes through standard rewrite gateway
RewriteRule ^([^?]+) index.php?rwr=$1 [B,QSA,NC,NE,L]

 

webitproff
#2 2023-06-05 07:45

даже удивился насчет пробелов в ссылках. но вы  правы, - кому-то пригодится

аккаунт удален - не срослось с разработчиками
ушел на другой движок
Kopusha
#3 2023-06-05 08:12

У меня имена пользователей можно с пробелами. 
например users/Sergi%20Mykhalchuk

хотя и users/365?m=details можно

webitproff
#4 2023-06-05 13:40
#46850 Kopusha:

У меня имена пользователей можно с пробелами. 
например users/Sergi%20Mykhalchuk

хотя и users/365?m=details можно

Вот теперь дошло ))))

напомнили мне о моих ошибках десятилетней давности.

Нет, логин только латинскими символами, цифры и занки "_" или "-" !

никакой кириллицы и спецсимвоов.

иначе в ходе эксплуатации сайта вечно какие-то "неожиданности"...

юзаю уже не один год провененный плагин logincheck

Простой плагин для проверки правильности введенного логина при регистрации пользователя.

Плагин разрешает указывать в логине только латинские символы и цифры при регистрации пользователя.

Также плагин умеет проверять логин на запрещенные имена.

 

 

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

и так, к слову, может кому пригодится, насчет Имени, Отчества, Фамилии пользователя на сайте в шаблонах

Создание двух дополнительных экстраполей
firstname - Альберт
secondname - Эйнштейн
позволяло мне в профиле пользователя вывести
через конструкцию

<!-- IF {PHP.usr.profile.user_firstname} AND {PHP.usr.profile.user_secondname} -->
{PHP.usr.profile.user_firstname}&nbsp;{PHP.usr.profile.user_secondname|cot_string_truncate($this,1)}.<!-- {PHP.usr.profile.user_firstname} -->
<!-- ELSE -->
{PHP.usr.name}
<!-- ENDIF -->

Альберт Э.

а на странице пользователя, ему лично и гостей страницы

<!-- IF {PHP.usr.id} == {PHP.urr.user_id} -->
	<!-- IF {USERS_DETAILS_FIRSTNAME} AND {USERS_DETAILS_SECONDNAME} -->
	<h4>Привет, {USERS_DETAILS_FIRSTNAME} {USERS_DETAILS_SECONDNAME} !</h4>
	<!-- ENDIF -->
<!-- ELSE -->
	<!-- IF {USERS_DETAILS_FIRSTNAME} AND {USERS_DETAILS_SECONDNAME} -->
	<h4>Здравствуйте, меня зовут {USERS_DETAILS_FIRSTNAME} {USERS_DETAILS_SECONDNAME|cot_string_truncate($this,1)}.</h4>
	<!-- ENDIF -->
<!-- ENDIF -->

 

аккаунт удален - не срослось с разработчиками
ушел на другой движок
This post was edited by webitproff (2023-06-05 14:33, 1 year ago)
Kopusha
#5 2023-06-07 06:45

У меня есть проверка логинов, по моему даже через модифицированный logincheck, и на лету проверяю валидный ли имейл, есть ли введенный пасс в слитых БД и многое другое. Но для юзеров по задачам нужен на некоторых проектах пробел. 
Если интересно есть ли введенный пасс в слитых БД  - глянь на https://uidm.ru/, но так как это РФ, я не работаю через их API а просто слил их базу паролей и проверяю у себя внутри, так я не завишу от стороннего апи и нет лага, да и .ru у меня от разных провайдеров то работает то залочен.

Точно так же что бы минимизировать нагрузку с гуглкартами, я составил собственные "словари" например bounds стран и регионов, мне по задачам надо проверять находится ли точка в пределах региона и каждый раз опрашивать гугл это бред а потом может быть и дорого, делаешь свой json файл и опрашиваешь его.

Стараюсь максимально не зависеть от сторонних серверов, апи и тд, потому и отключил пуш-уведомления всюду, логин через ФБ и тд, оно сегодня работает а завтра нет, а на рабочих сайтах люди ждать не будут.

This post was edited by Kopusha (2023-06-07 06:51, 1 year ago)
Kabak
#6 2023-06-07 06:47

т.е. ваш плагин отправляет письмо на введённый пользователем Емайл и ждёт получения ответа от почтового сервера  ?   Что вы подразумеваете под словом валидный ?

 

Kopusha
#7 2023-06-07 06:51
#46853 Kabak:

т.е. ваш плагин отправляет письмо на введённый пользователем Емайл и ждёт получения ответа от почтового сервера  ?   Что вы подразумеваете под словом валидный ?

 

Нет конечно
И слать проверочное письмо для активации - бред, и два раза вводить пароль - бред, отошел давно от этого. Если юзер забыл пароль - есть мейл его восстановить. Если он забыл пароль и ввел не верный мейл - зачем мне такой юзер?

{USERS_REGISTER_EMAIL|cot_rc_modify($this, 'id="useremail" type="email" class="form-control latin-only_a" autocomplete="off" autocapitalize="off" spellcheck="false" onchange="return trim_space(this)"')}

 

$("input.latin-only_a").on('keypress', function(event){
    if(!((event.keyCode >= 48 && event.keyCode <= 57 && event.shiftKey == false) ||
       (event.keyCode >= 64 && event.keyCode <= 90) || (event.keyCode >= 97 && event.keyCode <= 122) || (event.which == 32) || (event.which == 46) || (event.which == 39) || (event.which === 95) || (event.which == 190) || (event.which == 44) || (event.which == 188) || (event.which == 173) || (event.which == 45) || (event.which == 189) || (event.which == 109))) {
        event.preventDefault();
    }
});
$("input.latin-only_a").one("keypress", function(event){
    if(!((event.keyCode >= 48 && event.keyCode <= 57 && event.shiftKey == false) ||
       (event.keyCode >= 64 && event.keyCode <= 90) || (event.keyCode >= 97 && event.keyCode <= 122) || (event.which == 32) || (event.which == 46) || (event.which == 39) || (event.which === 95) || (event.which == 190) || (event.which == 44) || (event.which == 188) || (event.which == 173) || (event.which == 45) || (event.which == 189) || (event.which == 109))) {
		$(this).notify(OVERALL_LANG['onlyeng'],{
		  clickToHide: true,
		  autoHideDelay: 4000,
		  arrowShow: false,
		  arrowSize: 5,
		  breakNewLines: true,
		  elementPosition: "top left",
		  style: "bootstrap", // or metro
		  className: "error",
		  showDuration: 400,
		  hideAnimation: "slideUp",
		  hideDuration: 200,
		  gap: 10
		});
    }
});

Иногда еще такое прикрутить можно к мейлу https://codepen.io/aaroniker/pen/VdRRpM

This post was edited by Kopusha (2023-06-07 07:04, 1 year ago)