- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день!
При работе с одним из плагинов стали вылезать ошибки и зависать сервер с переполнением памяти.
В частности, очень много вылезает ошибок из плагина focal:
PHP Warning: Missing argument 2 for wpdb::prepare(), called in /var/www/mysites/data/www/site.ru/wp-content/plugins/folding-category-widget/focal_wp28.php on line 768 and defined in /var/www/mysites/data/www/site.ru/wp-includes/wp-db.php on line 1246
Ссылка ведет на строчку:
$querystr = $wpdb->prepare($querystr);
Вот часть кода:
Подскажите пожалуйста, что с этой строчкой "не то" и как это можно исправить?
Большое спасибо!
Ну и задайте второй аргумент, который требуется на строке 1246.
http://www.maultalk.com/topic202323.html?view=findpost&p=2049296
kgtu5, так тоже даст ошибку, скорее всего. Лучше как-то так:
foreach ($children as $cat) {
$querystr = "
SELECT DISTINCT $wpdb->posts.ID
FROM $wpdb->term_taxonomy, $wpdb->posts, $wpdb->term_relationships
WHERE $wpdb->posts.ID = $wpdb->term_relationships.object_id
AND $wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id
AND $wpdb->term_taxonomy.term_id = $cat->term_id
AND $wpdb->posts.post_status = %s
AND $wpdb->posts.post_type = %s
AND $wpdb->posts.post_date < NOW()
";
$querystr = $wpdb->prepare($querystr, 'publish', 'post');
$result = $wpdb->get_results($querystr, ARRAY_A);
if ($result)
foreach ($result as $id)
$subcatposts[] = $id["ID"];
}
Или вообще это фуфло не писать, а закомментировать строку.
kgtu5, так тоже даст ошибку, скорее всего. Лучше как-то так:
foreach ($children as $cat) {
$querystr = "
SELECT DISTINCT $wpdb->posts.ID
FROM $wpdb->term_taxonomy, $wpdb->posts, $wpdb->term_relationships
WHERE $wpdb->posts.ID = $wpdb->term_relationships.object_id
AND $wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id
AND $wpdb->term_taxonomy.term_id = $cat->term_id
AND $wpdb->posts.post_status = %s
AND $wpdb->posts.post_type = %s
AND $wpdb->posts.post_date < NOW()
";
$querystr = $wpdb->prepare($querystr, 'publish', 'post');
$result = $wpdb->get_results($querystr, ARRAY_A);
if ($result)
foreach ($result as $id)
$subcatposts[] = $id["ID"];
}
Или вообще это фуфло не писать, а закомментировать строку.
Если строку эту убрать, то не будет защиты БД от взлома...
Если строку эту убрать, то не будет защиты БД от взлома...
А Вы думаете, что в том виде, как оно у Вас написано, будет защита? Ошибаетесь! 😂
Защита должна быть путём обработки аргументов, которые могут быть кем-то подделаны, а не путём вставки запроса и получения на выходе его же.
Впрочем, надеюсь, проблема уже решена? Потому что и я предложил, как мне кажется, рабочий вариант, и там, где Вы ещё задавали этот вопрос, - maultalk.com - тоже предложили аналогичный вариант, и Вы можете эти варианты творчески переработать если хотите...:)