Местный Сообщений: 26 Откуда: Ярославль Зарегистрирован: 11 Апреля 2011, 18:25:46 Сказали спасибо 0 раз Статус: offline
Опубликовано 19 Сентября 2012, 14:56:45
Всем доброго времени суток! Возник вопрос. Два дня уже мучаюсь, не хватает знаний, прошу помощи: пытаюсь реализовать функцию censorwords в гостевой. Как уж не пробовал: перед записью в базу
if ($guest_name != "" && $guest_message != "" {
$result = dbquery("INSERT INTO ".$db_prefix."gbook....
при таком раскладе, если существуют в тексте запрещенные слова, запись в базу вообще не идет, страница тупо обновляется. Пробовал и на сам вывод ставить
при таком раскладе выдает ошибку
Warning: preg_replace() [function.preg-replace]: Unknown modifier '/' in /var/www/abc662/data/www/site.ru/pda/maincore.php on line 440
Warning: preg_replace() [function.preg-replace]: Compilation failed: missing terminating ] for character class at offset 5 in /var/www/abc662/data/www/site.ru/pda/maincore.php on line 440
Warning: preg_replace() [function.preg-replace]: Unknown modifier 'r' in /var/www/abc662/data/www/site.ru/pda/maincore.php on line 440
Вот строка 440:
if ($word_list[$i] != "" $text = preg_replace("/".$word_list[$i]."/si", $settings['bad_word_replace'], $text);
Как это реализовать? Что я не так делаю? Буду признателен за помощь. Ведь в чате эта функция работает, очень хотелось бы ее и в гостевой.
Местный Сообщений: 26 Откуда: Ярославль Зарегистрирован: 11 Апреля 2011, 18:25:46 Сказали спасибо 0 раз Статус: offline
Опубликовано 20 Сентября 2012, 17:38:52
Проверил, слова есть. Была только одна проблема: не мог их добавить из админки, видимо чего-то накосячил и теперь в некоторых разделах админки висит ошибка "function preg_match", однако всё работает, поэтому стараюсь просто не обращать внимания Так вот, добавил слова вручную прямо в бд, всё включено, слова для замены есть. И не работает. Пошел проверить чат- оказалось, такая же проблема: не идет запись в базу! Хотя раньше всё работало ( я его отключил уж год назад, нет необходимости в нем). В общем, всё должно работать- и не работает. В чем причина- понять не могу. То есть эта функция у меня вообще умерла. Понимаю, что где-то что-то "сломал", но вот что и где- ума не приложу...
Местный Сообщений: 26 Откуда: Ярославль Зарегистрирован: 11 Апреля 2011, 18:25:46 Сказали спасибо 0 раз Статус: offline
Опубликовано 21 Сентября 2012, 07:37:00
PahaW написал:
надо посмотреть что за ошибка preg_match в каком файле?
и когда ты кидаешь файл на просмотр, прикрепляй его в архиве или отключай смайлики ))
Хорошо, буду делать так. А ошибки в разделе Администрирование системы, причем не во всех разделах. В файлах Главные установки (settings_main.php), Прочие установки (settings_misc.php), Установки времени и даты (settings_time.php), Установки приватных сообщений (settings_messages.php), Установки регистрации (settings_registration.php), Установки форума (settings_forum.php), Установки фотогалереи (settings_photo.php). То есть, вряд ли я повредил все эти файлы. Но вот где искать причину- не знаю...
Местный Сообщений: 26 Откуда: Ярославль Зарегистрирован: 11 Апреля 2011, 18:25:46 Сказали спасибо 0 раз Статус: offline
Опубликовано 21 Сентября 2012, 10:14:45
В общем, с ошибкой разобрался, она была в settings_links.php: двойной слеш умудрился поставить вместо одного. Но проблемы это не решило. Даже не представляю, в каком направлении копать. При включенной функции censorwords запись в базу вообще не идет, не важно, есть в сообщении запрещенные слова или нет...
Пока пользуюсь этим, пришлось прямо в код добавить, но зато работает:) Хорошо бы это еще с базой запрещенных слов объединить, тогда б альтернатива censorwords была
$ind = array('.net', '.com', 'http://', '.ru', '.org', 'namfam', 'sex', '.ua', '<a href=', '[url=', 'www');
//определили массив с запрещёнными словами
$replace = array('[censored]', '[censored]', '[censored]', '[censored]', '[censored]', '[censored]', '[censored]', '[censored]', '[censored]', '[censored]', '[censored]');
//определили массив со словами, которые подставляем вместо запрещённых
$guest_message = str_replace($ind, $replace, $guest_message);
//заменяем запрещенные слова перед записью в базу
Местный Сообщений: 26 Откуда: Ярославль Зарегистрирован: 11 Апреля 2011, 18:25:46 Сказали спасибо 0 раз Статус: offline
Опубликовано 26 Сентября 2012, 08:07:21
PahaW написал:
Прям даже и не знаю чем вам помочь ))
логи выдают какие-нибудь ошибки?
Честно говоря, не смотрел. Посмотрю. Видимых никаких нет. Тоже не знаю, в каком направлении копать. Ведь там нужно только: таблица со словами и заменой- есть; описание самой функции в maincore.php- есть. В чем может быть проблема- ума не приложу. Кстати, ошибка в settings_links.php не моя, это ошибка в архиве, который здесь лежит: двойной слеш вместо одного.
Местный Сообщений: 26 Откуда: Ярославль Зарегистрирован: 11 Апреля 2011, 18:25:46 Сказали спасибо 0 раз Статус: offline
Опубликовано 27 Сентября 2012, 14:45:58
Вот access.log, больше нигде ничего не нашел
178.63.34.109 - -[27/Sep/2012:14:28:39 +0400]"POST /pda/guestbook.php HTTP/1.0" 302 4907 "http://www.yartamada.ru/pda/guestbook.php" "Opera/9.80 (J2ME/MIDP, Opera Mini/4.2.14912/28.2555; U; ru) Presto/2.8.119 Version/11.10"
Пробовал просто на мобильной версии сайта, там аналогично всё. Никаких ошибок, ничего не показывает, просто обновляется страница. Может это быть конфликт с jquery.js или jquery.corner.js? Не представляю, в чем может быть дело.
Местный Сообщений: 26 Откуда: Ярославль Зарегистрирован: 11 Апреля 2011, 18:25:46 Сказали спасибо 0 раз Статус: offline
Опубликовано 29 Сентября 2012, 11:09:00
Вопрос еще возник. В error.log имеется вот такое:
guestbook.php+++++++++++++++++++++++++++++result:+\xe8\xf1\xef\xee\xeb\xfc\xe7\xee\xe2\xe0\xed+\xed
2;xe8\xea\xed\xe5\xe9\xec+"leankelia";+\xef\xe8\xea\xf2\xee\xea\xee\xe4+\xe4\xe5
\xf8\xe8\xf4\xf0\xee\xe2\xe0\xed;+\xf3\xf1\xef\xe5\xf5;+bb-\xea\xee\xe4+\xed\x
e5+\xf0\xe0\xe1\xee\xf2\xe0\xe5\xf2
Любитель Fusion Сообщений: 148 Зарегистрирован: 02 Июня 2009, 10:04:06 Сказали спасибо 12 раз Статус: offline
Опубликовано 01 Октября 2012, 17:22:32
Pisatel написал:
Вопрос еще возник. В error.log имеется вот такое:
guestbook.php+++++++++++++++++++++++++++++result:+\xe8\xf1\xef\xee\xeb\xfc\xe7\xee\xe2\xe0\xed+\xed
2;xe8\xea\xed\xe5\xe9\xec+"leankelia";+\xef\xe8\xea\xf2\xee\xea\xee\xe4+\xe4\xe5
\xf8\xe8\xf4\xf0\xee\xe2\xe0\xed;+\xf3\xf1\xef\xe5\xf5;+bb-\xea\xee\xe4+\xed\x
e5+\xf0\xe0\xe1\xee\xf2\xe0\xe5\xf2
Что это может быть? Похоже на попытку взлома. Или ошибаюсь?
походу ломали, как проверить, ну можешь воспользоваться скриптами вот этими
<?php
/*
* decode/cp1251.php
* $Id: cp1251.php,v 1.1.4.2 2004/02/24 15:57:27 kink Exp $
*
* Copyright (c) 2003-2004 The SquirrelMail Project Team
* Licensed under the GNU GPL. For full terms see the file COPYING.
*
* This file contains cp1251 decoding function that is needed to read
* cp1251 encoded mails in non-cp1251 locale.
*
* Original data taken from:
* ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1250.TXT
*
* Name: cp1251 to Unicode table
* Unicode version: 2.0
* Table version: 2.01
* Table format: Format A
* Date: 04/15/98
* Contact: cpxlate@microsoft.com
*
*/
Местный Сообщений: 26 Откуда: Ярославль Зарегистрирован: 11 Апреля 2011, 18:25:46 Сказали спасибо 0 раз Статус: offline
Опубликовано 03 Октября 2012, 10:42:45
Угу, понял, посмотрел. И понял, что не понял.:) Что это значит?
guestbook.php++++++++++++++++++++++++++++
+Result:+использован+никнейм+"leankelia";+пиктокод+4ешифрован;+успех;+BB-код+не+работает
uestbook.php++++++++++++++++++++++++++++
+result:+использован+н2;xe8кнейм+"leankelia";
+пиктокод+дешифрован;
+успех;+bb-код+н\xe5+работает
Местный Сообщений: 26 Откуда: Ярославль Зарегистрирован: 11 Апреля 2011, 18:25:46 Сказали спасибо 0 раз Статус: offline
Опубликовано 05 Октября 2012, 13:48:31
В общем, проблема с censorwords не решена. Поставил sf с нуля, подключил только jquery.js и highslide.js, включил фильтр плохих слов... И перестали добавляться комментарии. Отключил фильтр- всё работает. Может как-то js влиять на работу censorwords?
Местный Сообщений: 26 Откуда: Ярославль Зарегистрирован: 11 Апреля 2011, 18:25:46 Сказали спасибо 0 раз Статус: offline
Опубликовано 19 Октября 2012, 08:12:49
Всем здравствуйте! Такой вопрос возник: таблица _captcha вроде должна очищаться, верно? У меня этого не происходит, почему-то. Зашел как-то, а там уже 3мб записей. Есть ли у кого подобная проблема? И как (где) ее лечить?
Еще. Нужно было сделать, чтобы ссылки могли добавлять и неавторизованные пользователи, реализовал, могу поделиться. То есть, это отдельный файлик, ссылку с одного ip можно добавить раз в сутки (можно выставить любое время), время исчисляется с момента подачи до момента модерирования. Добавлена стандартная каптча. В общем, это что-то типа обмена ссылками: есть поле для добавления адреса страницы с беклинком, далее этот адрес будет виден только админу при выводе, чтобы время от времени проверять бэклинк.