Практика разработки Web-страниц

         

Форма не работает или появляется сообщение об ошибке


Большинство форм разработаны для того, чтобы получать информацию от посетителей вашей страницы и отправлять ее сценарию или программе на веб-сервере. В тэге <FORM> вы используете атрибут action, чтобы указать, к какому сценарию или программе прибегнуть, когда посетитель отправит форму. Например, если вы создаете форму, чтобы посетители послали вам e-mail, посетители вводят имя, адрес электронной почты и необходимые вам сведения. Затем форма отправляет эту информацию программе Common Gateway Interface (CGI) или серверному сценарию, такому как Active Server Pages (ASP), который отправляет e-mail. Чтобы работать, ваша программа должна быть правильно сконфигурирована для сервера и иметь все необходимые возможности. Кроме того, форма должна отсылать программе правильную информацию, используя тэги <INPUT> с правильными именами и параметрами. В некоторых случаях вам необходимо отправлять дополнительную информацию программе, используя скрытые поля – тэги <INPUT> с информацией, которыя не должна появляться на фор ме, как, к примеру, адрес e-mail, по которому вы хотите отправлять информацию. Если с каким-нибудь из этих пунктов что-то не в порядке, форма может не заработать.


Когда вы используете форму, чтобы запустить сценарий или программу на сервере, у вас могут возникнуть проблемы

Чтобы диагностировать и решить проблему с формой, сделайте следующее.

  1. Если броузер отображает ошибку вроде "404 Page Not Found" или "Can’t open Perl script" при отправке формы, скорее всего, вы неверно указали имя или путь в тэге <FORM> в атрибуте action. Проверьте указанный в форме путь и местоположение сценария на сервере.
  2. Если вы видите ошибку вроде "Internal Server Error" или "The page cannot be displayed", вы, возможно, не имете доступа к сценариям CGI или ASP. Если у вас есть доступ к серверу, убедитесь, что папка сценария допускает его выполнение, и что вы отметили файл сценария как исполняемый. (В UNIX или Linux вы можете менять доступ к файлу, используя команду chmod – наберите chmod 755 filename.cgi чтобы ваш сценарий выполнялся.



  3. Если вашему сценарию необходимы параметры, такие как адрес e-mail или файл, в который вы хотите отправить информацию, убедитесь, что вы это предусмотрели. (Если вы используете чужой сценарий, просмотрите сценарий или его документацию, чтобы найти необходимые параметры.) Если информация пропущена, вы можете не добиться нужных результатов. В одних случаях вы прописываете параметры сценария как его собственные переменные, в других – как скрытые поля в вашей форме. Например, эта строка HTML устанавливает параметр recipient для сценария e-mail:

    <input type="hidden"name="recipient"value="mailme@callahansoftware.com">

  4. Если ваш сценарий запускается, но не делает то, для чего он нужен, например не отсылает e-mail, проблему будет нелегко решить. Для сценария отправки e-mail убедитесь, что почтовая программа (или SMTP сервер) работает. Для сценария, модифицирующего файлы, убедитесь, что они доступны. Если ничего не помогает, поищите ошибки в самом сценарии, свяжитесь с провайдером или администратором сервера.
Многие серверные сценарии ASP и Perl, так же как и другие програмы CGI, свободно доступны в сети. Если вы управляете своим сервером или ваш провайдер позволяет вам использовать сценарии, вы можете добавить их на свой сайт. Список ресурсов смотрите в Приложении C.


Содержание раздела