proba 57 Опубликовано: 4 июня 2018 Рассказать Опубликовано: 4 июня 2018 Автор 10 часов назад, celsoft сказал: Какая опечатка? Я не вижу никаких опечаток. Коль одни переменные проверяются на существование, а другие - на своё значение, пусть так тогда и будет. Тогда у меня другой вопрос. В файле /inc/files.php проверяется: if ( $userdir == "files/" ) msg( "error", $lang['addnews_denied'], $lang['index_denied'] ); т.е. в папку FILES подразумевается, что нельзя, но при этом нет проверки на случай, когда $userdir = "", а $sub_dir = "files". Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 18 июня 2018 Рассказать Опубликовано: 18 июня 2018 Автор Не баг! Если удаляется "категория1" и имеется такой вариант: категория1 (за ней имеются публикации) подкатегория1 (за ней имеются публикации) подкатегория2 (за ней имеются публикации) При выборе "убрать эту категорию у публикаций", удаляются "категория1", "подкатегория1" и "подкатегория2", а у публикаций удаляется только категория с id соответствующей "категория1". Не правильнее было бы в таком случае, удалять у публикаций из категорий и id соответствующие "подкатегория1" и "подкатегория2"? При выборе "Удалить также и публикации", удаляются "категория1", "подкатегория1" и "подкатегория2" и удаляются публикации только с id соответствующими "категория1". Не правильнее было бы в таком случае, удалять и публикаций с id соответствующими "подкатегория1" и "подкатегория2", либо добавлять им 0? При выборе "Переместить в другую категорию", удаляются "категория1", "подкатегория1" и "подкатегория2" и только публикации с id соответствующими "категория1" перемещаются в указанную категорию. Не правильнее было бы в таком случае, если публикациям с id соответствующим "подкатегория1" и "подкатегория2", добавлять id указанной новой категории или 0? В случае, если удаляется "категория1" и имеется такой вариант: категория1 (публикаций нет) подкатегория1 (имеются публикации) подкатегория2 (имеются публикации) то так же удаляются "категория1", "подкатегория1" и "подкатегория2" и публикации с id соответствующими "подкатегория1" и "подкатегория2" не затрагиваются. Не правильнее было бы в таком случае, публикациям с id "подкатегория1" и "подкатегория2" добавлять 0 (если имелось по одной id)? Получается, что категории с подкатегориями удаляются, а публикации имеют номера своих бывших категорий, о которых ничего не известно, а если не известно, то зачем они остаются?! Подводя всё это, как вариант, не лучше при удалении, например "категория1", помимо трёх предлагаемых действий (на данный момент), добавить действие, при котором всем имеющимся подкатегориям ("подкатегория1" и "подкатегория2") в parentid устанавливать parentid самой "категория1", т.е. все подкатегории не удалять, а поднимать на уровень выше, либо, если удалять (как сейчас реализовано) и подкатегории тоже, то тогда и с учётом их id для публикаций, как это делается для удаляемой "категория1"? Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 26 июня 2018 Рассказать Опубликовано: 26 июня 2018 В 18.06.2018 в 10:17, proba сказал: Подводя всё это, как вариант, не лучше при удалении, например "категория1", помимо трёх предлагаемых действий (на данный момент), добавить действие, при котором всем имеющимся подкатегориям ("подкатегория1" и "подкатегория2") в parentid устанавливать parentid самой "категория1", т.е. все подкатегории не удалять, а поднимать на уровень выше, либо, если удалять (как сейчас реализовано) и подкатегории тоже, то тогда и с учётом их id для публикаций, как это делается для удаляемой "категория1"? Первый вариант не нужен, т.к. перед удалением категории, можно итак поднять все подкатегории на уровень выше, чтобы они больше не являлись подкатегориями удаляемой категории. А вот второй вариант чтобы все действия применялись и к удаляемым подкатегориям имеет смысл. Будет сделано. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 28 июня 2018 Рассказать Опубликовано: 28 июня 2018 Автор В 26.06.2018 в 09:24, celsoft сказал: перед удалением категории, можно итак поднять все подкатегории на уровень выше Согласен, но для каждой подкатегории придётся совершать однотипные действия по поднятию, а так было бы меньше телодвижений и проще. Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 18 июля 2018 Рассказать Опубликовано: 18 июля 2018 Есть функция в файле /engine/inc/options.php которая принимает 4 параметра, но 4 параметр нигде не используется в функции. function showRow($title = "", $description = "", $field = "", $class = "") { echo "<tr> <td class=\"col-xs-6 col-sm-6 col-md-7\"><h6 class=\"media-heading text-semibold\">{$title}</h6><span class=\"text-muted text-size-small hidden-xs\">{$description}</span></td> <td class=\"col-xs-6 col-sm-6 col-md-5\">{$field}</td> </tr>"; } showRow( $lang['opt_sys_ht'], $lang['opt_sys_htd'], "<input type=\"text\" class=\"form-control\" name=\"save_con[home_title]\" value=\"{$config['home_title']}\">", "white-line" ); Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 24 июля 2018 Рассказать Опубликовано: 24 июля 2018 @celsoft функция echofooter выводит если юзер не вошел в админ панель $skin_not_logged_footer но в global она не подтягивается. function echofooter() { global $is_loged_in, $skin_footer; if( $is_loged_in ) echo $skin_footer; else echo $skin_not_logged_footer; } Так же echoheader выводит переменную $skin_not_logged_header которая не берется в global Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 15 октября 2018 Рассказать Опубликовано: 15 октября 2018 @celsoft Файл /engine/clasees/templates.class.php функция load_template. Имя файла обрабатывается функцией totranslit, в которой выполняется следующий код $var = str_ireplace( ".php", "", $var ); $var = str_ireplace( ".php", ".ppp", $var ); Позже в функции load_template есть код if( stripos ( $tpl_name, ".php" ) !== false ) { Вопросы. Зачем после удаления .php делать замену .php на .ppp когда его никогда уже не будет? И зачем делать проверку на существование подстроки .php в названии файла, если эта подстрока уже стерта? Файл /engine/inc/options.php зачем передавать данные в функцию оборачивая в скобки? Пример: "{$config['allow_comments_wysiwyg']}" "{$config['comments_rating_type']}" Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 15 октября 2018 Рассказать Опубликовано: 15 октября 2018 10 часов назад, Gameer сказал: Вопросы. Зачем после удаления .php делать замену .php на .ppp когда его никогда уже не будет? что будет в результате работы строки $var = str_ireplace( ".php", "", $var ); если строка будет ".p.phphp", это ответ на ваш вопрос зачем это делать, и о ложном утверждении что его уже никогда не будет. От такой невнимательности к деталям и взламывают коды и в результате сайты. 10 часов назад, Gameer сказал: зачем передавать данные в функцию оборачивая в скобки? Затем чтобы передать их как именно строки. Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 15 октября 2018 Рассказать Опубликовано: 15 октября 2018 1 час назад, celsoft сказал: Затем чтобы передать их как именно строки. Зачем? Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 16 октября 2018 Рассказать Опубликовано: 16 октября 2018 (изменено) @celsoft зачем использовать class который называется unifrom но использовать для него js скрипт selectpicker а не uniform? $('select.uniform').selectpicker(); Это сбивает с толку, использовал метод апдейта uniform и какое было удивление что ничего не происходит и данные не обновляются. Пришлось заглядывать в главный скрипт что бы понять что там совсем не uniform Изменено 16 октября 2018 пользователем Gameer Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 16 октября 2018 Рассказать Опубликовано: 16 октября 2018 21 минуту назад, Gameer сказал: зачем использовать class который называется unifrom но использовать для него js скрипт selectpicker а не uniform? Затем что не всем элементам с этим классом назначается именно selectpicker Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 16 октября 2018 Рассказать Опубликовано: 16 октября 2018 5 минут назад, celsoft сказал: Затем что не всем элементам с этим классом назначается именно selectpicker Я знаю, но почему для selectpicker не использовать отдельный класс? Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 16 октября 2018 Рассказать Опубликовано: 16 октября 2018 1 минуту назад, Gameer сказал: Я знаю, но почему для selectpicker не использовать отдельный класс? Зачем? Нам удобно так. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 8 января 2019 Рассказать Опубликовано: 8 января 2019 Автор В движке используется $not_allow_symbol, но например, в файлах feedback.php (ajax и module) по сравнению с другими, отсутствуют символы пробела и &. А в файле editusers.php только &. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 13 января 2019 Рассказать Опубликовано: 13 января 2019 Автор В файле register.php: strlen( $email ) > 40, В файле profile.php: strlen( $email ) > 50 В social.php: strlen( $email ) > 50 Да же в api до 50. Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 15 февраля 2019 Рассказать Опубликовано: 15 февраля 2019 (изменено) @celsoft обратите внимание (версия DLE 13.1) 1. /cron.php устаревшая функция each с 7.2.0 while ( list ( $key, $val ) = each( $arr ) ) { 2. /engine/ajax/upload.php нет global для $lang в функции xfparamload echo $lang['xfield_error'], "$lang[xfield_err_3] \"engine/data/xfields.txt\". $lang[xfield_err_4]"; 3. /engine/classes/antivirus.class.php нет переменной $file $this->checked_folders[] = $dir . $this->dir_split . $file; 4. /engine/classes/parse.class.php нет переменной $url возможно имелось в виду $data->url $html = ( !empty($data->title) ) ? '<a href="' . $this->safeUrl($url) . '">' . $this->escapeHTML($data->title) . '</a>' : false; 5. /engine/classes/social.class.php нет переменной $count if(dle_strlen( $user['nickname'], $config['charset'] ) > 37) $user['nickname'] = dle_substr( $user['nickname'], 37, $count, $config['charset'] ); 6. /engine/inc/categories.php в функции DisplayCategories нет переменной $cat $category_name = $cat[$id]; 7. /engine/inc/dumper.php объявлена переменная до ее проверки $is_dle if( !$is_dle AND !empty($str) ) { 8. /engine/modules/social.php нет переменной $_IP в функции check_registration $row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users WHERE logged_ip = '{$_IP}'" ); Изменено 15 февраля 2019 пользователем Gameer 1 1 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 18 февраля 2019 Рассказать Опубликовано: 18 февраля 2019 В 15.02.2019 в 21:22, Gameer сказал: @celsoft обратите внимание (версия DLE 13.1) Спасибо за информацию. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 27 мая 2019 Рассказать Опубликовано: 27 мая 2019 Автор Только мысли вслух. Тип текста как "Исходный текст HTML без фильтрации и изменений" в статических страницах ещё актуален? На деле, кроме BB-шного редактора, в прямом виде эта опция не работает. По-умолчанию редактор "Фроала". При вставке куска кода в редактор и выборе данного типа, идёт преобразование символов в html-сущности + addslashes (при allow_br = 2), кусок кода при выводе страницы выводится как текст. С "Тини" такая же песня. В самих же браузерах, при редактировании страницы, кусок кода отображается как оригинальный (как только что вставленный). При переключении на BB-шный, в нём весь код отображается с сущностями, а не как оригинал. Но, если в него вставить оригинал, то кусок кода вставится в страницу правильно, и при редактировании отобразится в оригинале. Если пойти дальше и вставить изображение через "Загрузка изображений и файлов на сервер" внутрь куска кода в обоих "висивигах" - на странице изображение отображается, кусок кода всё так же текстом. В BB-шном, чтобы обработался тэг картинки и кусок кода встал нормально, надо выбрать тип "фильтрованный ...". Да, кстати, фраза "Фильтрованный текст ...", как понимаю подразумевает под собой как уже обработанный (+ без использования HTML, если опираться на то, что в третьем типе упоминается про наличие HTML), а фактически будет обработка парсером. Не правильнее ли обозвать, что-то типа "(От)Фильтровать текст ..." или "Текст с фильтрацией ..."?! Ну или добавить к этим типам подсказки. Конечно, чтобы вставить в кусок кода загруженные картинки в "виcивигах" и всё это отобразить в выводе страницы, можно извратиться через "Исходный код HTML" и "Вставка исходного кода", но там не всё айс + в самих редакторах кусок кода тогда не отображается. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 27 мая 2019 Рассказать Опубликовано: 27 мая 2019 42 минуты назад, proba сказал: Тип текста как "Исходный текст HTML без фильтрации и изменений" в статических страницах ещё актуален? На деле, кроме BB-шного редактора, в прямом виде эта опция не работает. Это настройка не редакторов, а DLE. Визуальные редакторы приводят код к валидному, только к настройке это не имеет никакого отношения, это заложено в самих редакторах, разработчиками этих редакторов. Поэтому чтобы использовать невалидный HTML код, если вы хотите чтобы он был обязательно, то конечно визуальные редакторы нужно отключать переключив на BB редактор, где по сути это простое текстовое поле. А те настройки что приводите вы это настройки поведения DLE, после того как данные поступят на сервер и их начнет обрабатывать DLE, по правилам, что вы укажите этими пунктами. 45 минут назад, proba сказал: Да, кстати, фраза "Фильтрованный текст ...", как понимаю подразумевает под собой как уже обработанный (+ без использования HTML, если опираться на то, что в третьем типе упоминается про наличие HTML), а фактически будет обработка парсером. Не правильнее ли обозвать, что-то типа "(От)Фильтровать текст ..." или "Текст с фильтрацией ..."?! Ну или добавить к этим типам подсказки. Нет не правильно. Это значит что текст пройдет проверку со стороны DLE на предмет валидации, и безопасности. Именно со стороны DLE, именно на сервере, а не со стороны редактора. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 27 мая 2019 Рассказать Опубликовано: 27 мая 2019 Автор 1 час назад, celsoft сказал: Это настройка не редакторов, а DLE Это понятно, но я о другом. Возможно Вы меня не поняли... Визуальные преобразуют в html-сущности, но при получении и дальнейшей обработке DLE получаемых данных от них, не правильнее ли будет перевести эти символы в их представление, и дальше уже DLE пусть либо экранирует addslashes (как она делает при allow_br = 2), либо парсером (как при = 0 или 1) и т.д.. 1 час назад, celsoft сказал: Это значит что текст пройдет проверку со стороны DLE на предмет валидации, и безопасности. И это понятно. Только названия параметров как "фильтрованный ..." сбивают почему-то с толку. То ли уточняют, какой "текст" вносится в редактор, то ли какой будет на выходе (при выводе страницы). Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 27 мая 2019 Рассказать Опубликовано: 27 мая 2019 10 минут назад, proba сказал: Это понятно, но я о другом. Возможно Вы меня не поняли... Визуальные преобразуют в html-сущности, но при получении и дальнейшей обработке DLE получаемых данных от них, не правильнее ли будет перевести эти символы в их представление, и дальше уже DLE пусть либо экранирует addslashes (как она делает при allow_br = 2), либо парсером (как при = 0 или 1) и т.д.. Нет не правильнее. Редакторы это делают в вашем браузере и что они делают у вас в браузере, для DLE неведомо. Вы это поставили или редактор исправил, DLE этой информацией не обладает и не может обладать. DLE получает на сервер только то что потом ему отправилось, и это его исходная точка отчета. DLE работает на сервере, а редакторы в браузере, это разные места работы. Поэтому параметры вступают в силу только после отправки данных на сайт. А не до их отправки. То что было до, считается вашими действиями, а не действиями DLE. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 28 мая 2019 Рассказать Опубликовано: 28 мая 2019 Автор 21 час назад, celsoft сказал: Редакторы это делают в вашем браузере и что они делают у вас в браузере, для DLE неведомо. Не спорю. 21 час назад, celsoft сказал: DLE получает на сервер только то что потом ему отправилось, и это его исходная точка отчета. Правильно. И получая все данные с формы, такие, например, allow_br = 2 (Исходный текст HTML без фильтрации и изменений), template = содержимое обработанное фроалой или тини, и остальные, DLE в таком случае делает проверку на маг. кавычки и двойное экранирование (addslashes + safesql). Так вот в данном случае, после проверки get_magic_quotes_gpc + если эти "висивиг" (из config), обработать template (html_entity_decode / htmlspecialchars_decode), а дальше тоже двойное экранирование. Или так будет не правильно?! Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 28 мая 2019 Рассказать Опубликовано: 28 мая 2019 11 минут назад, proba сказал: DLE в таком случае делает проверку на маг. кавычки и двойное экранирование (addslashes + safesql) Есть такое понятие как обратная совместимость, т.е. при обновлении DLE должен корректно отображать то что было добавлено ранее и на предыдущих версиях. Не забываем что DLE не год, а 15 лет. Он существовал тогда когда маг. кавычки существовали и были включены по умолчанию в PHP всегда и у всех, и контент был сформирован так как сформирован, и 15 лет назад не было никаких даже мыслей что, что то в этом вопросе изменится в PHP, а случилось то что случилось, и это двойное экранирование продолжает поддерживаться в DLE чтобы обеспечить совместимость со старым контентом. Не может обновление DLE "убить" то что вы добавляли несколько лет. Это очевидно. Это что касается двойного экранирования. Далее: 11 минут назад, proba сказал: после проверки get_magic_quotes_gpc + если эти "висивиг" (из config), обработать template (html_entity_decode / htmlspecialchars_decode), На основании чего это должен быть такой "финт" ушами? Что вы думаете что пользователи не используют HTML сущности? Используют и иногда делают это специально, так вот html_entity_decode это "убьет" на корню. Сущности это не только кавычки, и ряд HTML символов. Сущностями могут быть представлены абсолютно все существующие символы, DLE только делает это когда стоит вопрос безопасности и валидности и ни в каких других случаях. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 28 мая 2019 Рассказать Опубликовано: 28 мая 2019 Автор 8 минут назад, celsoft сказал: Что вы думаете что пользователи не используют HTML сущности? Вот этого я и добивался от Вас два дня. Вопрос исчерпан. Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 29 мая 2019 Рассказать Опубликовано: 29 мая 2019 @celsoft 1. /engine/inc/mass_static_actions.php Нет переменной $t1 msg( "success", $lang['db_ok'], $lang['db_ok_1'].$t1, $_SESSION['admin_referrer'] ); 2. /engine/inc/preview.php Нет переменной $cat_icon из-за этого не работает тег {category-icon} в preview.tpl (код дважды) if($cat_icon[$category[0]] != ""){ $tpl->set('{category-icon}', $cat_icon[$category[0]]); } if($cat_icon[$category[0]] != ""){ $tpl->set('{category-icon}', $cat_icon[$category[0]]); } 3. /engine/inc/wordfilter.php Проверка производиться до получение данных из $_POST['word_replace'] if( $word_replace == "($lang[word_del])" ) { $word_replace = ""; } 4. /engine/classes/zipextract.class.php Нет переменной $lang в функции WriteFile $this->errors_list[] = array( 'file' => $file, 'error' => $lang['upgr_f_error_18'] ); $this->errors_list[] = array( 'file' => $file, 'error' => $lang['upgr_f_error_18'] ); } else $this->errors_list[] = array( 'file' => $file, 'error' => $lang['upgr_f_error_18'] ); } else $this->errors_list[] = array( 'file' => $file, 'error' => $lang['upgr_f_error_18'] ); 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.