Sly32

Рейтинг
372
Регистрация
29.03.2012

Спасибо. Оказывается и мой грубый вариант работает, где то ошибка в коде в другом месте.

Потому как при просмотре исходного кода страницы как раз выдается как мне надо.

Но попробую ваши варианты, все таки моя php- вставка - некрасиво))

siv1987:
Он и должен экранировать при записи. А так как это "экран", после записи должны быть "чистые" данные. Если остаются лишние слеши, значит вы экранируете уже заслешенные данные. Обычно такое бывает с морально устаревшим magic_quotes

я их не применял, использую простой JS-скрипт, но, действительно. при каждом обновлении записи ко всем кавычкам добавляется еще один слэш

siv1987:
Какие эти функции экранируют? Экранирование должно произойти перед вставкой в бд.

update() например экранирует все виды кавычек, например. Именно при записи в базу

По итогу трехдневных мучений остался примерно там же где начинал.

Выводы (может будет кому-нибудь полезно)

- встроенные в Wordpress функции update и insert уже сами неплохо экранируют, если не нужен большой функционал - применение их вместе с strip_tag вполне достаточно.

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

как бороться не знаю...

Вот соглашусь. В настоящем виде эффект от ГГЛ совсем маленький. Сапа выгоднее. И размещать обзоры перестал - сайт прибивает конкретно, хотя продавал только для тематических сайтов.

drsilent:
Друзья, подскажите. После переноса сайта на wordpress в коде главной пропал meta description. Только главной страницы.Естественно в общих настройках прописано описание. Как

Вообще то есть тема, посвященная WP, ради простого вопроса не стоит создавать отдельную...

Ставьте плагин All-in-One SEO pack или аналогичный и делайте дескрипшены для чего угодно.

LovelAss:
Лучше используйте BB-коды, а полученный текст прогоняйте через strip_tags + htmlspecialchars.

Собственно, strip_tags - первое что сделал. +addslashes. с BB-кодами не разбирался, как их подключить.

htmlspec - именно счас разбираюсь.

А можно привести примеры опасных запросов, которые могут повредить сайт или базу? Можно в личку, хочется проверить защиту)))

dkameleon:
ой-ой-ой-ой.... руки прочь от компьютера!

для начала вам надо определиться, что пользователю можно отправлять и что вы хотите показывать.
что за форма?

Я б вам дал доступ на сайт в тест, но боюсь - вдруг вы мне все уничтожите))))

В форме пользователь заполняет данные о своей фирме- должен быть минимальный обьем доступных тегов для форматирования документа, данные на русском языке, поэтому все эти дропы могу смело запрещать. Доступны абзацы, переносы, заголовки, списки и по мелочи. Для этого к текстареа подключил JS вставку тегов, остальные закрыл как писал выше. Сам метод update как выяснилось добавляет слэши к кавычкам, так что возникла проблема - не работает вставка стилей через спан. Но это некритично.

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

Добавил еще регулярку которая просто убирает всякие drop и onmouse..

метод update, оказывается, автоматически экранирует кавычки.

Спасибо за подсказку с null - попробую. Я уже ночью во сне тоже пришел к выводу что нужно попробовать убрать.

siv1987:
Вы забываете что у тегов есть еще атрибуты.

В силу малоопытности не очень понимаю как это может пройти - обьясните на примерах ?



$wpdb->insert( 'mytable', array('myrow' => $value) );

$wpdb->prepare(
'INSERT INTO table (myrow) VALUES (%s)',
$value, //an unescaped string (function will do the sanitization for you)
);

попытался добавить prepare - перестала работать запись. Где то нарушил синтаксис. в VALUES нужно %s или %d указывать через запятую количеством в строгом соответствии с $value?

делал так:


$wpdb->query(
$wpdb->prepare(
"INSERT INTO `my_table` ( id, post_content, meta_value, post_excerpt ) VALUES ( %d, %s, %d, %s )",
array(
NULL,
$metakey,
0,
' '
)
)
);
Всего: 7407