За месяц Январь, 2008

Как работает интернет. Для начинающих

Тем, кто представляет, как “работает” Интернет, статья может показаться неинтересной. Все расписано очень простым и понятным языком. Многие подробности опущены.

Предупреждение сделано. Теперь поехали.

Раз уж Вы оказались на моем сайте, то так или иначе Вы “сидите в интернете”. Что же за этим скрывается? Совсем простым языком описать то, как “работает” интернет, можно примерно так:

Вы, сидя за своим компьютером открываете программу-браузер (скорее всего, Internet Explorer, mozilla Firefox или Opera). Программа может открыть пустую страницу - тогда придется вводить в адресной строке адрес сайта. Или же программа сразу откроет домашнюю страницу. Вот теперь поподробнее.

“Открыть страницу” - за этими словами скрывается множество действий, невидимых глазу человека. Компьютер, получив команду “открыть” посылает запрос к другому компьютеру (серверу), на котором находится эта страница. В ответ он получает какие-то данные (будем называть их файлами, хотя это не обязательно так). Вы видите не только текст, но ещё и картинки. Значит при открытии страницы компьютер получил не один файл, а несколько. Многие файлы не видны пользователю, но без них страница работала бы не так, как нужно - в файлах прописаны служебные инструкции для программы-браузера. В следующих статьях мы обязательно рассмотрим служебные файлы . А пока разберем, откуда берутся эти файлы.

Вариант первый - они хранятся на сервере в таком же виде, как и передаются браузеру. Так называемые “статические” странички - изменить данные на страничке мы можем только отредактировав сам файл с этой страничкой. Такие странички можно только просматривать.

Вариант второй - промежуточный. Странички собираются из кусочков, которые все так же хранятся на сервере. Ведь у большинства страниц одного сайта встречаются одинаковые “участки” страницы - “шапка” - верхняя часть страницы, боковое меню, “подвал” - нижняя часть страницы. В случае если требуется изменить текст, например, в подвале, достаточно отредактировать один файл (в предыдущем случае пришлось бы изменять все страницы).

Вариант третий, наиболее распространенный. При запросе странички на сервере выполняется некая программа, которая “печатает” ответ. Браузер, получив ответ, отображает его на экране. А как составляется ответ? Как захочет программист :) Нужно вывести каталог интернет-магазина? пожалуйста. А если статью из последнего номера журнала? - пожалуйста. В общем, фантазия безгранична…

Так вот. В качестве “серверной программы” в третьем варианте вполне успешно выступает интерпретатор PHP - программа, которая выполняет “скрипты”, написанные на одноименном языке программирования. И если Вы хотите научиться программировать на PHP, создавать динамические страницы, научиться думать как машина (если уже умеете - отлично)…

В общем, решайте, надо ли.. или не надо.

Опубликовано Январь 31, 2008 | автор: levik  |  Комментарии (4) »

Настройки компилятора Borland Builder

Если приходилось сталкиваться с тем, что программа, созданная в Borland Builder запускается на своем компьютере, но при переносе на другой - ругается на отсутствие файлов ( vcl60.bpl).

Все дело в том, что при настройках по умолчанию (на этапе разработки программы так гораздо удобнее - экономия времени и ресурсов компьютера) скомпилированная программа Borland C++ Builder использует библиотеки Borland (Run Time Packages), в которых содержатся многие используемые функции. Естественно, если на компьютере не установлен Builder или другой продукт, содержащий эти библиотеки, программа не сможет корректно выполниться.

Для компиляции окончательного варианта программы (который будет использоваться на любых компьютерах) следует:

  • Перейти в управление свойствами проекта: Project - Options (Shift+Ctrl+F11);
  • на вкладке Packages снимаем галочку Build with runtime packages;
  • на вкладке Compiler нажимаем кнопочку Release (с зеленым человечком);

На всякий случай можно побродить по вкладкам (Linker и Compiler) и посмотреть, чем отличается режим Release и Full debug (кнопочка рядом с Release) .

После таких манипуляций программа, скомпилированная в Borland Builder будет выполняться на любом компьютере (естественно, с операционной системой Windows, которая поддерживает использованные в программе возможности)

Опубликовано Январь 22, 2008 | автор: levik  |  Нет комментариев »

Хранимые процедуры в MySQL 5.0

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

1. Вызов процедуры, которая возвращает результат:
CREATE PROCEDURE returnresult(IN userid INT)
BEGIN
SELECT * from ... ;
END;

Тогда
<?php mysql_query('call returnresult(2)');'?>
выдаст ошибку “PROCEDURE base.returnresult can’t return a result set in the given context “.
Проблема в том, что библиотека mysql не поддерживает мульти-запросы. Для возврата результата из хранимой процедуры следует использовать улучшенную версию - библиотеку mysqli (improved).
Заменим в коде функции mysql на mysqli, (на локальном сервере для windows - добавим в файл php.ini строку: extension=php_mysqli.dll; аналогичной команды для *nix не знаю.). После этого все заработало.

2. Рекурсивные процедуры в mysql

При попытке использовать рекурсию mysql выдал:

Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routineset …

Лечится запросом “SET max_sp_recursion_depth= 4″ // глубину рекурсии - в зависимости от задачи. Мне много не надо было. :)

Опубликовано Январь 12, 2008 | автор: levik  |  Нет комментариев »