|
27.11.2005, 23:02
Shakal действительно такой казус имеется, но он ни как не связан с надписью, которую вы приводите и именно с модулем новостей. Он связан со знаком ' (одиночная кавычка).
И как не странно виновата вся та же проверка filter(), но уже измененная проектом phpnuke.ru. Ими было внесено изменение в данную функцию, а именно если скрипт опознает администратора, то он не производит проверку функцией filter() с одной стороны - это хорошо, а именно администратор может добавлять не разрешенные системой различные теги. А с другой стороны - при добавлении информации в БД она должна пройти некую обработку, иначе, некоторые символы, например как, кавычка вызовет ошибку в sql запросе, и он не выполнится, что в данном случаи и происходит!
Предлагаю следующую модификацию функции filter(),
найдите в файле mainfile.php:
PHP код:
function filter($what, $strip="", $save="", $type="") { global $admin; if (!is_admin($admin)) { if ($strip == "nohtml") { $what = check_html($what, $strip); // $what = htmlentities(trim($what), ENT_QUOTES); // If the variable $what doesn't comes from a preview screen should be converted if ($type != "preview" AND $save != 1) { $what = html_entity_decode($what, ENT_QUOTES, "cp1251"); } } if ($save == 1) { $what = check_words($what); $what = check_html($what, $strip); $what = addslashes($what); } else { $what = stripslashes(FixQuotes($what)); $what = check_words($what); $what = check_html($what, $strip); } } return($what); }
и замените на:
PHP код:
function filter($what, $strip="", $save="", $type="") { global $admin; if (!is_admin($admin)) { if ($strip == "nohtml") { $what = check_html($what, $strip); // $what = htmlentities(trim($what), ENT_QUOTES); // If the variable $what doesn't comes from a preview screen should be converted if ($type != "preview" AND $save != 1) { $what = html_entity_decode($what, ENT_QUOTES, "cp1251"); } } if ($save == 1) { $what = check_words($what); $what = check_html($what, $strip); $what = addslashes($what); } else { $what = stripslashes(FixQuotes($what)); $what = check_words($what); $what = check_html($what, $strip); } } elseif (is_admin($admin) and $save == 1){ $what = addslashes($what); } return($what); }
обратите внимание: это изменение только для руссифицированной версии php-nuke 7.9 от phpnuke.ru
|
|