KoBaL

Рейтинг
14
Регистрация
01.09.2012
LEOnidUKG:
Что за чушь вы тут написали :)

При чём тут ваш код и:


Объясните что вам нужно точно и покажите весь код.

Просто в базу заносилось пустое поле, я начал искать почему и сделал вывод на страницу через echo, результат меня морально опустошил.

Всё прошло само по себе, не знаю даже, что это за херня была.

KoBaL:

2184:D45E163FF5E04D91:12C1F7B | f162aede76549abfceda77aa4929bc7f<br>2184:D45E163FF5E04D91:12C1F7B | 5767074dc3b8bf80c0fcc58ec427a4c5


Tопостовление по 1 шинглу(ам) состовляет 100% идентичности текста.
Tопостовление по 2 шинглу(ам) состовляет 0% идентичности текста.
Tопостовление по 3 шинглу(ам) состовляет 0% идентичности текста.
Tопостовление по 4 шинглу(ам) состовляет 0% идентичности текста.


Улыбнуло.

Если проверять напрямую ($sign == $sign_1) - то возвращает всегда false, что ему в этой var2 не нравится :(

Всё, к чему можно как-то прицепиться - это то, что эта var2 мой модуль получает от .tpl файла, тоесть туда передаётся /link.html?var2=текст, в шаблоне я это обрабатываю:


$server_uri = $_SERVER['REQUEST_URI'];
parse_str ($server_uri,$get_request);

И далее достаю этот самый var2, который передаю в модуль при покдлючении

Ни у кого нет идей? :(

LovelAss:
Результат вывода покажите. Лучше прямо на сайте.


2184:D45E163FF5E04D91:12C1F7B | f162aede76549abfceda77aa4929bc7f<br>2184:D45E163FF5E04D91:12C1F7B | 5767074dc3b8bf80c0fcc58ec427a4c5

Tопостовление по 1 шинглу(ам) состовляет 100% идентичности текста.

Tопостовление по 2 шинглу(ам) состовляет 0% идентичности текста.

Tопостовление по 3 шинглу(ам) состовляет 0% идентичности текста.

Tопостовление по 4 шинглу(ам) состовляет 0% идентичности текста.

Улыбнуло.

LovelAss:
Строки покажите и их хэши.


string(32) "f162aede76549abfceda77aa4929bc7f" - $sign_1 = '2184:D45E163FF5E04D91:12C1F7B';
string(32) "5767074dc3b8bf80c0fcc58ec427a4c5" -$sign = $var1.':'.$var2.':'.$var3;

Стоит убрать var2 из списка и вроде-как всё встаёт на свои места, стоит поменять $var2 не на значение из get запроса, а на готовую строку в ковычках - всё работает как надо.

KoBaL:
Ничего не изменилось, это явно не пробелы...

34 - у правильной (которая просто текстом), 33 - у собранной из переменных :(

LovelAss:
Возможно недоглядели пробел. Попробуйте trim()

Ничего не изменилось, это явно не пробелы...

LovelAss:
KoBaL, попробуйте вывести внутри скрипта обе переменные и их хэши:

и посмотрите на результат.

Строка - одинаковая, MD5 - разный!

---------- Добавлено 24.05.2013 в 00:58 ----------

Chukcha:
var_dump($sign_1);
sizeof($sign1);
var_dump($sign);
sizeof($sign);

Вот это уже интересно: в одной из них в массиве string(34), у другой - 33

Я, блин, спать не могу пойти, пока не разберусь :(

LovelAss:
KoBaL, смотрите кодировку символов из которых формируется хэш. Дело, скорей всего, именно в ней.

Я пытался перевести все в Windows-1251 или в UTF-8 через mb_convert_string (что-то типо того) - результата никакого :(

---------- Добавлено 24.05.2013 в 00:52 ----------

LovelAss:
KoBaL, смотрите кодировку символов из которых формируется хэш. Дело, скорей всего, именно в ней.

mb_detect_encoding все строки показывает как ASCII

Дело происходит в модуле для DLE (если делать всё это в .tpl файле, то такого не наблюдается). Есть две строки, обе - один в один, единственная разница:

1. Готовая строка

2. Собирается из других

Первая строка:

$sign_1 = 'IDСтатичный:УникальныйКод:Ключ(ста тичный)';

- получаю из готово введённой строки MD5 - получается правильный результат

$sign = $var_1.':'.$var_2.':'.$var_3;

- получаю готовую строку, которая 100% ПОВТОРЯЕТ SIGN_1, НО ЕСЛИ ИЗ НЕЁ ПОЛУЧИТЬ MD5 - Получается совершенно другое!

Пытался сделать так: $sign_1 = 'IDСтатичный:'.$var_2.':ключ'; - результат такой же, как если собирать все 3 переменные.

ПОМОГИТЕ, УЖЕ ЧАСА ПОЛТОРА СИЖУ, ВООБЩЕ НЕ МОГУ ПОНЯТЬ ЧТО ЭТА ШТУКА ОТ МЕНЯ ХОЧЕТ!

Всем большое спасибо за подсказки! Очень выручили!

123 4
Всего: 36