Архив рубрики: Программинг

DLE / Ошибка с выводом переменных {news_num} и {comm_num}

После взлома одного из моих сайтов я решил провести полную чистку и ревизию всех проектов. На двух сайтах стояла DLE 9.4, решял обновить — скачал версию 9.6. залил, устанвил, настроил.

Вроде бы, все отлично, но при просмотре карточки пользователя и инфы пользователя вместо количества постов и коментариве выводятся переменные {news_num} и {comm_num}.

dle num 500x369 - DLE / Ошибка с выводом переменных {news_num} и {comm_num}

Полез копать шаблоны и открывать мануалы. Оказалось в новой версии переменные эти были чуть-чуть переименованы, вместо нижнего подчеркивания необходимо использовать дефис. То есть {news-num} и {comm-num}.

Заменил глючные переменные в файлах шаблона userinfo.tpl и profile_popup.tpl. После чего проблема исчезла. В официальном описании релиза про эти переменные я ничего не нашел, видимо, их еще в 9.5 версии снесли.

DLE / Ошибка Cron not allowed / cron.php

При обновлении DLE движка одного из своих сайтов я заметил одну проблему — после обновления у меня не вышло сделать бекап базы данных с помощью файла cron.php. Скрипт выдал ошибку “Cron not allowed”.

В интернете нашел совет — Вроде понятная ошибка. Крон не допустим. На сервере отключен Cron, поэтому пишет что модуль выполнения скриптов по расписанию не поддерживается. Пишите хостеру.

Но на деле все оказалось гораздо проще и хостер не при чем.

dle cron 500x385 - DLE / Ошибка Cron not allowed / cron.php

Открывает фай cron.php находим там параметр $allow_cron = 0; И выставляем ему значение 1. Вот и всё.

PHP / Что делать если INCLUDE со сторонних сайтов запрещен

У большинства хостинг-провайдеров возможность подгружать через include файлы с других ресурсов запрещена. Это правильная мера и вполне вменяемая. Но начинающие кодеры не всегда разделяют мнение админо. Ниже я приведу кусок кода выполняющего аналогичные задачи, но только для текстовых файлов, xml и html страниц. Естественно заинклудить так кусок PHP кода не получится. Потому что код получит, уже результат его работы.

$fp = @fsockopen ("site.name", 80, $errno, $errstr, 10);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
$buf='';
fputs ($fp, "GET /home/text.txt HTTP/1.0\r\nHost: site.name\r\n\r\n");
while (!feof($fp)) {
$buf.=fgets ($fp,128);
}
fclose ($fp);
$buf=str_replace("\r", '', $buf);
$buf=split("\n\n", $buf);
unset($buf[0]);
foreach($buf as $b) echo $b;
}
}

site.name — этьо имя сайта, с которого мы грузим файл.
/home/text.txt — это собственно сам файл, с указанием директории

Если за 10 секунд заргузить не получится, функция fsockopen выдаст еррор :)

SAPE Файл links.db не обновляется, а если удалить создается нулевого размера

Вдруго случилось так, что на одном проекте ссылки начали выпадать в ERROR без видимой на то причины. Зашел на фтп, проверил файлы, вроде все правильно. Попробовал удалить файл links.db, в надежде на то, что он пересоздастся с нормальными ссылками, а он создается нулевого размера. Весит ровно ноль байт.

Тут Штирлиц понял, что трабл кроется где-то глубже в скриптах. Но поскольку скрипт SAPE довольно тихий пришлось прибегнуть к чедоспособу диагностики проблем. Способ следующий. Читать далее

Проблемы с куками и сессией в Firefox

Совсем недавно я столкнулся с одной небольшой проблемой, когда начал писать корзину заказов товара для интернет магазина с помощью сессий. Проблема заключалась в том, что корзина на разных страницах показывала разные суммы заказа, и разные товары. Создавалось такое ощущение, что кукис кешируется для определенной страницы.

По сути теряеться идентификатор сессии в файфоксе (куки включены), в IE всё работает нормально. Если этот же сценарий перенести на поддомен, то идентификатор сессии не теряется не в IE не в файрфоксе.

Как оказалось в конце виноват был всетакие URL. Кукисы для сайта с WWW и без него разные, а в моей скрипте иногда редирект шел на сайт без WWW. После того, как я сделал принудительный редирект всех страниц на WWW ошибка исчезла во всех браузерах.

Как выключить обновление темы WordPress

Многие темы, скачанные из интернета, периодически обновляются и пытаются в автоматическом режиме установить свою свежую версию. Впринципе можно игнорировать значок, о том что присутствует обновление, но поскольку я люблю порядок, было решено разобраться с назойливым обновлением. Читать далее