Category archives: Программирование

Ошибка незаконченного комментария в PHP

Раньше как-то особо не приходилось с этим сталкиваться, а может я просто этого не замечал, ведь это не критическая ошибка, а просто предупреждение, которое записывается в логи и часто не выводится на рабочих серверах из-за соответствующих настроек PHP. Read more …

Tags: , , , , , , , , , ,

Уменьшение размера базы данных сайта на CMS MediaWiki

В общем для MediaWiki большой размер БД это типичная проблема ибо все версии страниц сохраняются и база получается тяжёлой. Со временем база данных сильно разрастается и приходится искать способы для того, что бы её уменьшить. Перовое, что приходит на ум это удалить старые версии страниц. Об этом и поговорим. Read more …

Tags: , , , , , , ,

СУБД не отвечает из-за превышения лимита запросов

При работе с СУБД MySQL столкнулся с проблемой которая повергла меня в ступор ибо я долго не мог понять из-за чего это происходит. Симптомы банальны: СУБД тупо не отвечает на посылаемые ей запросы. При этом никаких ошибок так же не отдаёт и исправно принимает запросы. Т.е. запросы уходят к СУБД а в ответ ничего, совсем ничего. Вот уж не знаешь что и думать в такой ситуации. Разумеется перезагрузка сервера баз данных помогает, но ведь это не выход надо искать причину проблем. Read more …

Tags: , , , , ,

Getters and setters methods, методы геттеры и сеттеры

Хотелось бы быстро поведать про так называемые геттеры и сеттеры (getters and setters), что это такое и зачем оно надо. Геттеры и сеттеры это методы, которые получают и устанавливают определённые значения. Впервые они были предложены разработчиками языка программирования Java и позже были подхвачены всеми ибо это действительно универсально и удобно. Поскольку в парадигме ООП важнейшую роль играет скрытие данных, т.е. инкапсуляция, то часто требуются именно методы которые позволяют получить или установить значения инкапсулированных данных. Например в языке C# для этого были сделаны специально так называемые свойства, но сейчас не об этом. Read more …

Tags: , ,

Стандартный надёжный механизм шифрования паролей

Для многих данных механизм не секрет, а уж если взять специалистов по сетевой безопасности, так то вообще всем поголовно известно, но всё же считаю нужным описать этот алгоритм дабы всегда можно было быстро вспомнить если вдруг забыл. Скажу сразу, что этот механизм шифрования паролей стар как мир, но при этом весьма надёжен и актуален по сей день, что является доказательством его успешности. Этот механизм шифрования паролей пользователей исторически и по сей день применяется в большинстве дистрибутивов ОС Linux. Read more …

Tags: , , ,

Компиляция и интерпретация

Поговорим о различиях компиляции и интерпретации, расскажу главные отличие и особенности каждого способа выполнения программ. Не буду долго тянуть, поэтому сразу начнём. Read more …

Tags: , ,

Ошибки vs Исключения

Частая война в мультипарадигмальный языках программирования. Естественно всё можно разложить по своим местам дабы не спорить зря. Быстренько пробежимся по истории и разберём всё по полочкам. Read more …

Tags: ,

Вставка большого количества записей в индексируемую таблицу БД

Наверняка не часто, но всё же случаются такие случаи когда надо вставить большое количество записей в индексируемую таблицу базы данных. Казалось бы и что тут такого? Но всё не так просто! Я говорю о действительно больших массивах данных. Например у нас есть таблица с колонками для которых создан индекс и мы в неё вставляем в неё более 10k новых строк одновременно. Естественно используем SQL оператор INSERT с вариацией множественной вставки. Все знают, что такая громадная операция замедлит работу БД т.к. после каждой строки вставки будут автоматически создаваться индексы, т.е. вся таблица будет сканироваться для обновления информации в индексе. Read more …

Tags: , , ,

Делаем 301 редирект разными способами

В посте опишу самые популярные способы редиректа, как серверные так и скриптовые. Показывать буду на примере постоянного 301 редиректа (301 Permament Redirect — постоянный редирект). 301-ый код статуса HTTP, возвращается при обращении к определенному ресурсу и означает, что запрашиваемый документ был перенесен на новый адрес, причём на постоянной основе. Получив 301 код статуса HTTP все клиенты (user agents) будут перенаправляться по новому адресу. Обычно при 301 редиректе поисковые роботы производят «склейку» адресов, начального и конечно, как будто это одна страница. Read more …

Tags: , , , , , , , , , , ,

Регулярные выражения в текстовом редакторе Notepad++

В посте поведаю про особенности использования регулярных выражений (regexp) в популярном текстовом редакторе для программистов Notepad++. Думаю стоит об этом рассказать т.к. текстовый редактор накладывает свои правила на пользование регулярными выражениями. Стоит заметить что в Notepad++ эта функция довольно хорошо развита, поэтому пользоваться ей порой очень удобно ибо она позволяет сократить время работы во много раз. Read more …

Tags: , , ,

Как написать CAPTCHA на PHP

Приветствую Вас на страницах своего блога. В этом топике речь пойдёт о том как самому написать плагин CAPTCHA для своего сайта. Да, я знаю, что подобных скриптов в сети полным полно начиная от самых простеньких и заканчивая решениями мирового масштаба предоставляемые от гигантов индустрии, но всё же я не поленюсь поведать о том как написать капчу самому на PHP. Read more …

Tags: , ,

Как использовать reCAPTCHA на самописном сайте?

В этом посте постараюсь максимально подробно рассказать о том как прикрутить капчу reCAPTCHA к своему самописному сайту. Это довольно не сложно, но всё же я решил посвятить этому топик в своём блоге ибо на официальном сайте reCAPTCHA вся документация только на английском языке, думаю будет не лишним перевести её и на русский. По сему могу заверить, что данная статья не столько мои рассуждения и поучения, сколько перевод официальной документации reCAPTCHA. Опять же повторюсь, что статья содержит информацию сугубо о том как использовать captcha reCAPTCHA на своём именно самописном сайте т.к. для большинства популярных CMS на официальном сайте проекта есть соответствующие плагины для быстрой интеграции, мы же будем всё писать вручную в своих исходниках на PHP. Read more …

Tags: , , ,

Решение проблемы Failed to create the Java Virtual Machine

Возникла такая проблема, при запуске Eclipse’a. Появляется окно с сообщением — Eclipse failed to create the java virtual machine, что в переводе на русский: Eclipse’у не удалось создать виртуальную машину Java. Как же с этим бороться? Всё очень просто! Read more …

Tags: , ,

strtolower и кириллица

Сейчас бегло пробежимся  по проблеме с php функциями strtolower и strtoupper а именно с переводом строки в нижний и верхний регистр при использовании кириллических символов. На примерах, для экономии времени, я буду показывать работу только с функцией strtolower т.к. для strtoupper всё тоже самое. Read more …

Tags: , ,

Call to undefined function mysql_connect()

Итак мы получаем ошибку с сообщением следующего типа Call to undefined function mysql_connect(), что дословно переводится как «Призыв неопределённый функции mysql_connect()». Read more …

Tags: , , , , ,

7.32MB | MySQL:62 | 0,111sec