|
|
|
|
|
для: Valick
(11.07.2011 в 23:17)
| | Viva La Cuba!!!
Работает) спасибо Valick, что в конце концов "вдолбили" в меня cвою идею и не остановились где-нибудь на пол пути со словами "дерево понимает быстрее") | |
|
|
|
|
|
|
|
для: julpierto
(11.07.2011 в 23:15)
| | тогда поменяйте местами true и false
$dostup=false;
...
if(substr_count($sub,$value)>0) $dostup=true;
___
он работает, просто я сначала не понял условие задачи) | |
|
|
|
|
|
|
|
для: Valick
(11.07.2011 в 22:53)
| | Valick, у меня проверка не на плохие слова, а наоборот - если стоп-слово присутствует в заголовке темы, она публикуется, тем самым отсеивая не подходящие темы:)
Поймите меня пожалуйста правильно, ваш идея мне нравится и спасибо, что расширяете мой пхп кругозор, давая альтернативные варианты)
Но этот скрипт не работает и хочется понять почему?) | |
|
|
|
|
|
|
|
для: julpierto
(11.07.2011 в 22:38)
| | используем только в том случае если проверка на плохие слова не даст результата
если встретим хоть одно слово из массива, то будет false и условие соответственно не выполниться
с этим все чётко :) | |
|
|
|
|
|
|
|
для: Valick
(11.07.2011 в 22:35)
| | Сначала мы назначаем переменной значение $dostup=true;
,затем $dostup=false;
,а потом снова используем как true | |
|
|
|
|
|
|
|
для: julpierto
(11.07.2011 в 22:26)
| | чем это Вас смущает? | |
|
|
|
|
|
|
|
для: Valick
(11.07.2011 в 22:18)
| | Насчет регулярных выражений согласен - попробовал, где-то тут в коде ошибка, сценарий не запускается
foreach($stopkeys as $value){
if(substr_count($sub,$value)>0) $dostup=false; // вот этот момент меня смущает
}
|
| |
|
|
|
|
|
|
|
для: julpierto
(11.07.2011 в 21:56)
| | может потому что мой вариант Вы так и не попробовали?)
// Check subject
$stopkeys = array ('картошка','марковка','капуста','огурец');
$dostup=true;
$sub=strtolower($subject);
foreach($stopkeys as $value){
if(substr_count($sub,$value)>0) $dostup=false;
}
if($dostup){
$subject = htmlspecialchars(trim($subject));
}else if ($mode == 'newtopic' || ($mode == 'editpost' && $post_data['first_post'])){
$error_msg .= (!empty($error_msg)) ? '<br />' . $lang['Empty_subject'] : $lang['Empty_subject'];
}
|
там где можно обходиться без регулярных выражений - нужно обходиться без регулярных выражений ;) | |
|
|
|
|
|
|
|
для: Valick
(11.07.2011 в 19:28)
| | Ваш код должен работать по идее, но не работает в моем случае.
Друг подсказал такое решение, через регулярные выражения, сценарий срабатывает, не пойму почему ваш вариант не хочет?
if (!empty($subject))
{ $subject = strtolower($subject);
if (preg_match('/красный|желтый|зеленый|синий/', $subject))
{
$subject = htmlspecialchars(trim($subject)); } else { die("Not Allowed"); } // может потому что не было концовки?
}
|
| |
|
|
|
|
|
|
|
для: julpierto
(11.07.2011 в 19:22)
| | вообще строка $subject = htmlspecialchars(trim($subject)); вызывает некоторое подозрение
htmlspecialchars - нужно использовать при выводе в браузер
а я так понимаю $subject будут запихивать в БД
$count_keys и будет ноль кроме случая когда искомое слово последнее в массиве (можете проверить)
я же дал Вам рабочий код :) | |
|
|
|
|