PDA

Просмотр полной версии : Ошибка с "Цитата выделенного"


shumbola
07.05.2009, 19:30
Если имя пользователя форума содержит символ `'`, как в случае с Sergey Karakish'yan линк "цитата выделенного" не работает.

Artur Alikulov
07.05.2009, 19:45
Подтверждаю ;)

Eldar Ishimbaev
07.05.2009, 20:01
Знаю.

Александр Сучков
07.05.2009, 20:02
Подтверждаю
Писал об этом пару раз. Его что никто не цитировал что ли:)

JH
07.05.2009, 20:04
Самое простое решение - можно переименовать Сергея так, чтобы не было апострофа (просто убрать или кириллицей написать) и впредь не допускать

shumbola
07.05.2009, 20:17
Самое простое решение - можно переименовать Сергея так, чтобы не было апострофа (просто убрать или кириллицей написать) и впредь не допускать

Можно и код исправить. ИМХО, не сложнее чем переименование. :-)

JH
07.05.2009, 20:30
Можно и код исправить. ИМХО, не сложнее чем переименование. :-)

Так давно известно. И не сделали же. Я предлагаю проще решение с учетом этого факта

Azamat Davletmuratov
08.05.2009, 00:33
А у меня когда я цитирую к примеру скажем Ойбека Ибрагимова - то выходят какие-то абра-кадабры. Тоже самое наблюдал у некоторых. Это связано с браузером (Опера у мня!) или ...?

Djalolatdin Rakhimov
08.05.2009, 01:31
Самое простое решение - можно переименовать Сергея так, чтобы не было апострофа (просто убрать или кириллицей написать) и впредь не допускать

Можно и код исправить. ИМХО, не сложнее чем переименование. :-)

Есть конкретные предложения?

Ruslan Juldashev
08.05.2009, 09:37
Есть конкретные предложения?
Самое простое, непрограммистское решение в шаблоне поста в вызове функции Insert поставить двойные кавычки, а не одинарные. Тогда внутреннее содержимое с одинарной кавычкой будет нормально вставляться (но не будут вставляться имена с двойными кавычками, гггг, впрочем таких, кажется, не бывает)

<a title="Выделить текст и кликнуть здесь" onmouseover="catchSelection()" href="javascript:Insert("Djalola'tdin%20Rakhimov",%20selection,%20'215788')">Цитата выделенного</a>

Программистским решением будет в том же шаблоне вывода поста, в той же функции, в выводе имени, заменить опасные символы на мнемоники или добавить слеши перед ними:

$username = htmlspecialchars ($username, ENT_QUOTES);
или
$username = addslashes ($username);

Ruslan Juldashev
08.05.2009, 10:00
А вот чтобы в опере кириллица нормально работала нужно событие вызова функции Insert поставить не в href, а на onclick (это не я придумал, а видел где-то уже подобный фикс). Там нюанс в том, что опера кодирует кириллический «адрес» (прописанный в href) в UTF-8. Если бы страничка форума была в юникоде, всё было бы нормально.

azim
08.05.2009, 10:23
это не я придумал, а видел где-то уже подобный фикс
В который раз я вижу рок-н-ролл ты меня разочаровываешь :).