Спонсор: Microsoft
Воронежский государственный университет
Опубликован: 04.02.2009 | Доступ: свободный | Студентов: 8216 / 665 | Оценка: 4.14 / 3.78 | Длительность: 19:54:00
Самостоятельная работа 5:

Разработка CGI-приложений на Perl и PHP

< Лекция 5 || Самостоятельная работа 5: 123 || Лекция 6 >

Порядок выполнения работы

Для практического изучения примеров в данной лабораторной работе необходимо наличие установленных и правильно сконфигурированных интерпретаторов языков Perl и PHP.

Часть 1. Язык Perl

  1. Создайте файл с текстом сценария 1. Файл должен иметь расширение pl, и размещаться в директории Scripts (или cgi-bin ). Проверьте настройки доступа к папке для веб-сервера, который должен иметь право на выполнение сценариев в этой папке.

    При сохранении файла в редакторе следует также выбрать правильную кодировку символа переноса строки. Кроме того, первая строка сценария должна содержать правильный путь к директории, в которой установлен интерпретатор языка Perl (обычно это файл perl.exe или подобный ему).

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

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

  2. Подготовьте файл с текстом сценария 2.

    Для проверки работоспособности данного сценария можно выполнить его непосредственный запуск в веб-браузере через его URL с добавлением строки параметров, например:

    http://localhost/Scripts/test.pl?a=2&b=14

    Подготовьте HTML страницу, содержащую форму с полями для ввода данных. Вставьте в тэге <FORM> атрибут ACTION со значением, равным URL сценария, в качестве метода выполнения запроса укажите в атрибуте METHOD значение GET. Проверьте работу формы. Сделайте то же самое, но для метода POST.

  3. Подготовьте файл с текстом сценария 3 и HTML страницу, содержащую форму с полями для ввода операндов (простые поля для ввода текста с именами 'A' и 'B') и выбора арифметической операции (поле типа 'select' с именем 'op' ). Добавьте кнопку типа 'submit' и атрибут ACTION со значением, равным URL сценария, в тэге <FORM>:
    <html>
    <body>
      <form action='http://localhost/Scripts/test.pl'>
        <p>Operand1: <input type='text' name='A'></p>
        <p>Operand2: <input type='text' name='B'></p>
        <p>Operation:<br>
        <select name='op'>
          <option value='+'>+</option>
          <option value='-'>-</option>
          <option value='*'>*</option>
          <option value='/'>/</option>
        <select></p>
        <input type='submit' value='Calculate!'>
      </from>
    </body>
    </html>
    Проверьте работу сценария.

Часть 2. Язык PHP

  1. Подготовьте текстовый файл с расширением PHP и разместите его в директории в соответствии с конфигурационными настройками интерпретатора PHP (параметр doc_root ).

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

    Данный сценарий можно использовать для проверки списка передаваемых данных от клиента, если URL сценария использовать в форме (атрибут ACTION ) или вызывать его напрямую в веб-браузере.

  2. Подготовьте файл с текстом сценария 6 и HTML страницу с формой для проверки его работы. Проверьте работу сценария для методов GET и POST.
  3. Подготовьте файл с текстом сценария 7 и соответствующую HTML страницу с формой, как в аналогичном примере на языке Perl.
  4. Подготовьте файл с текстом сценария 8. В качестве первого аргумента функции fopen укажите имя этого файла. Проверьте работу сценария.
  5. Подготовьте файл с текстом сценария 9. Для выполнения сценария необходимо правильно настроить права доступа для веб-сервера к директории, в которой будет сохраняться файл (должен быть разрешен доступ на запись). Из соображений безопасности рекомендуется для записи создавать отдельную директорию. Запустите сценарий. Убедитесь, что был создан файл rand.dat и просмотрите его содержимое.

Контрольные задания

  1. Извлечение списка слов из текста (сценарий на языке Perl).
    • Подготовьте веб-страницу с формой, содержащей поле для ввода текста и кнопку типа submit. Для атрибута Action в форме укажите в качестве значения URL perl-сценария, например http://localhost/Scripts/wcount.pl.
    • Подготовьте сценарий на языке Perl, который извлекает из текста, полученного от клиентского приложения, список слов с помощью функции split. В качестве первого аргумента при вызове функции необходимо указать регулярное выражение, задающее список разделителей слов. Также сценарий должен показать общее число найденных слов.
  2. Извлечение списка слов из текста (сценарий на языке PHP).
    • Измените веб-страницу с формой, разработанную в предыдущем задании: для атрибута Action в форме укажите в качестве значения URL PHP-сценария, например http://localhost/wcount.php.
    • Подготовьте сценарий на языке PHP, который извлекает из текста, полученного от клиентского приложения, список слов с помощью функции preg_split, которая имеет следующий синтаксис:

      array preg_split(string pattern, string subject)

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

< Лекция 5 || Самостоятельная работа 5: 123 || Лекция 6 >
Михаил Олифиренко
Михаил Олифиренко
Александр Табачук
Александр Табачук

Это только у меня не работает кнопочка "Получить код DreamSpark"? Пишет "временно не доступно..." А когда заработает?