Сайт случайным образом заменяет определённые символы в адресах на кривые ï ò è итд

Аватар пользователя Megacybergluk Megacybergluk 3 октября в 17:15

Помогите, пожалуйста, с решением и желательно причиной проблемы, тому кто поможет я перешлю злата на кошель, потому как за бесплатно работать не правильно.

Уже больше года начал замечать такую проблему, что случайным образом заменяются определённые символы в адресах на кривые ï ò è итд
Вот примеры:



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

Лучший ответ

Аватар пользователя ivan.petrovich ivan.petrovich 12 октября в 14:22

Подтверждаю, со слов автора темы, это помогло.

Как вы знаете, доступа не было, пришлось опрашивать в упрощенном виде.

Симптомы были похожи на некоторые другие случаи из практики.
Поэтому среди первых вариантов решения была конвертация бд.
https://www.drupal.org/project/utf8mb4_convert

Но так как операция не тривиальна и точные условия были неизвестны, пришлось еще поискать варианты.

"Кодировка сервера: utf8mb4"
Все таблицы были в utf8_general_ci.

Воспроизвести проблему локально не удавалось.
Но за то в ядре попались упоминания utf8mb4 и utf8.
Появилась мысль проверить charset, задав значение принудительно через "settings.php".

Потребовалось добавить всего одну строку:
'charset' => 'utf8'

Небольшой пример, если кто-то будет искать:

<?php
$databases 
= array (
  
'default' => 
  array (
    
'default' => 
    array (
      
'database' => 'имя_бд',
      
'username' => 'имя_пользователя',
      
'password' => 'пароль',
      
'host' => 'localhost',
      
'port' => '',
      
'driver' => 'mysql',
      
'prefix' => '',
      
'collation' => 'utf8_general_ci',
      
'charset' => 'utf8'
    
),
  ),
);
?>

По поводу вознаграждения правда, уже передали.

Большое Спасибо )

Комментарии

Аватар пользователя Megacybergluk Megacybergluk 3 октября в 19:17

Никто ничего не пишет, даже не торгуется(
Даю 5к за решение проблемы, пожалуйста, помогите

Аватар пользователя jura12 jura12 3 октября в 23:45

надо больше информации по сайту и хостингу. может вообще вирусы. давайте я посмотрю. если не справлюсь денег не возьму. почта в моем профиле.

Аватар пользователя OldWarrior OldWarrior 4 октября в 0:53

Прошу прощения, конечно. Какие идеи ожидаются, если вы отказываетесь дать не то, чтобы доступы к сайту, а даже сам адрес сайта? Тут какой-то 80-й уровень телепатии требуется.

К слову. У меня был когда-то давно забавный (если не сказать анекдотичный) случай, когда человек до того боялся сторонних программистов, что выкладывал мне в аську код, я его изучал и правил, отправлял обратно, он вносил изменения и высылал мне скриншоты результата. При чём даже на скриншотах старательно замыливал адрес действующего сайта. Это была та ещё жесть и больше я так никогда не делал )

Аватар пользователя OldWarrior OldWarrior 4 октября в 1:07

ivan.petrovich wrote: Это вполне нормально для проектов с NDA.

NDA предполагает неразглашение, регулируемое собственно договором.

ivan.petrovich wrote: Вы ведь видели в топе названия разделов проекта.

В каком топе? Тут что-то не понял. Я ничего ещё не видел, если что Smile

Аватар пользователя ivan.petrovich ivan.petrovich 4 октября в 1:21

Договоры не всегда письменные и это обобщенное понятие.

Суть в том, что есть категория проектов, к которым вас сразу могут не пустить.
По опыту, это преимущественно контент или продукция для взрослых.

Аватар пользователя OldWarrior OldWarrior 4 октября в 1:42

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

Аватар пользователя voviko voviko 4 октября в 8:52

1. Эти знаки называются Диакритические знаки У вас похоже на французский.
2. в настройках генерации синонимов есть галочка, которая должна менять эти знаки на нормальные.

требует модуль transliteration
все это у вас есть?

Аватар пользователя Megacybergluk Megacybergluk 4 октября в 18:33

Адреса меняются сами по себе, в случайных местах, без каких либо изменений или действий.

Аватар пользователя VasyOK VasyOK 5 октября в 2:55

А после, того, как меняются - на ноде (термине), где поменялось стоит галка "Создать автоматически синонимы URL "

Аватар пользователя ivnish ivnish 11 октября в 11:17

Не добавляйте в заголовок "решено", у нас есть специальный механизм для отметки решений

Аватар пользователя Megacybergluk Megacybergluk 11 октября в 19:47

Чел который мне помогал, должен был отписать как была решена проблема
Если вкратце, то принудительно задал 'charset' => 'utf8 в setting.php

Аватар пользователя Megacybergluk Megacybergluk 12 октября в 13:43

Кстати все обещанные 10000р я заплатил пользователю ivan.petrovich, так как проблему он решил.

Аватар пользователя ivan.petrovich ivan.petrovich 12 октября в 14:22

Подтверждаю, со слов автора темы, это помогло.

Как вы знаете, доступа не было, пришлось опрашивать в упрощенном виде.

Симптомы были похожи на некоторые другие случаи из практики.
Поэтому среди первых вариантов решения была конвертация бд.
https://www.drupal.org/project/utf8mb4_convert

Но так как операция не тривиальна и точные условия были неизвестны, пришлось еще поискать варианты.

"Кодировка сервера: utf8mb4"
Все таблицы были в utf8_general_ci.

Воспроизвести проблему локально не удавалось.
Но за то в ядре попались упоминания utf8mb4 и utf8.
Появилась мысль проверить charset, задав значение принудительно через "settings.php".

Потребовалось добавить всего одну строку:
'charset' => 'utf8'

Небольшой пример, если кто-то будет искать:

<?php
$databases 
= array (
  
'default' => 
  array (
    
'default' => 
    array (
      
'database' => 'имя_бд',
      
'username' => 'имя_пользователя',
      
'password' => 'пароль',
      
'host' => 'localhost',
      
'port' => '',
      
'driver' => 'mysql',
      
'prefix' => '',
      
'collation' => 'utf8_general_ci',
      
'charset' => 'utf8'
    
),
  ),
);
?>

По поводу вознаграждения правда, уже передали.

Большое Спасибо )

Аватар пользователя OldWarrior OldWarrior 12 октября в 18:06

ivan.petrovich wrote: Появилась мысль проверить charset, задав значение принудительно через "settings.php". Потребовалось добавить всего одну строку:
'charset' => 'utf8'

Действительно, необычный случай. Пожалуй, это последнее, на что я мог бы подумать.