РНР 5 в подлиннике

Страница 37 из 554


ГЛАВА 3

CGI изнутри

Листинги данной главы можно найти в подкаталоге cgiinside.

До сих пор рассматривались лишь теоретические аспекты CGI. Мы знаем в общих .чертах, как и что передается пользователю сервером, и наоборот. Однако как же все-таки должна быть устроена CGI-программа (CGI-сценарий), чтобы работать с этой информацией? Откуда она ее вообще получает и куда должна выводить, чтобы переслать текст пользователю?

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

Язык С

Каждый программист обязан хотя бы в общих чертах знать, как "на низком уровне" работает то, что он использует — будь то операционная система (ОС) или удобный язык-интерпретатор для написания CGI-сценариев (каким является РНР).

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

Вы не найдете в этой главе ни одной серьезной законченной программы на С (за исключением разве что самой простой, типа "Hello, world!"). И даже более того: все листинги программ, представленные в следующих главах, далеки от идеала и могут быть сделаны более универсальными, но зато и значительно более длинными. Длиной пришлось пожертвовать и выбрать простоту.

В данной главе мы попытались описать все основные приемы, которые могут понадобиться при программировании сценариев на С (кроме работы с сокетами, это тема для отдельной книги, да и, пожалуй, лишь косвенно примыкает к Web-программированию). По возможности мы не будем привязываться к специфике конкретной ОС, ведь CGI — это стандарт, независимый от операционной системы, на которой будет выполняться сценарий. Вооружившись материалом этой главы, мож-

Гпава 3. CGI изнутри

77

но написать самые разнообразные сценарии — от простых до самых сложных (правда, для последних потребуется также недюжинная сноровка).

Наша цель — набросать общими мазками, как неудобно (вот именно — неудобно!) программировать сценарии на языках, обычных для прикладного программиста (в том числе на С и С++). Как только вы проникнетесь этой идеей, мы плавно и не торопясь двинемся в мир РНР, где предусмотрены практически все удобства, так необходимые серьезному языку программирования сценариев.

Работа с исходными текстами на С

Если вы не знакомы с языком С, не отчаивайтесь. Все примеры хорошо комментированы, а сложные участки не нуждаются в непременном понимании "с первого прочтения". Еще раз оговоримся, что материал этой главы предназначен для того, чтобы вы получили приблизительное представление об устройстве протокола HTTP и интерфейса CGI и узнали, как программы взаимодействуют с их помощью. Вероятно, без этих знаний невозможна никакая профессиональная работа на поприще Web-программирования.

Так что не особенно расстраивайтесь, если вы совсем не знаете С, — ведь эта глава содержит гораздо больше, нежели просто описание набора С-функций. В ней представлен материал, являющийся связующим звеном между CGI и HTML, детально описываются теги форм и их наиболее полезные атрибуты, приемы создания запросов и многое другое. Все это, безусловно, понадобится нам и при программировании на РНР.

Компиляция программ

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

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

Если вы работаете в Unix, откомпилировать программу просто. Для этого нужно выполнить команду:

gcc script.с -о script.cgi

При этом создастся исполняемый файл script.cgi, на который можно в дальнейшем ссылаться из HTML-форм (как именно — читайте дальше).

При использовании Windows все немного сложнее. Вернее, сложнее выбрать компилятор среди очень многих популярных. Сценарии, представленные в данной главе, настолько просты, что могут компилироваться даже старинным Borland С версии 1.0 для DOS (вышел в начале 90-х годов прошлого века). Также с ними справится и среда Microsoft Visual Studio, и Borland С++ Builder любых версий, вплоть до современных, причем с любыми настройками по умолчанию.



  • регпалата реутов
  • На http://www.mrstekloff.ru отверстие в стеклопакете для кондиционера.

  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006