Как я настраиваю Apache 2 для выполнения Perl сценарии CGI?

Не используйте литералы. Не помещайте данные в текст запроса, поместите их вне запроса как «параметры».

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

Способ кодирования параметров в запросах SQL зависит от библиотеки, которую вы используете в своем языке программирования для подключения к Firebird. См. http://bobby-tables.com/ для некоторых примеров. Ниже приведены три часто используемых соглашения:

  • SELECT .... WHERE t.name_qult = ? - изначально поддерживается Firebird, доступ к параметрам на основе индекса
  • SELECT .... WHERE t.name_qult = :NAME_PARAM - стиль BDE / Delphi
  • SELECT .... WHERE t.name_qult = @NAME_PARAM - стиль MS SQL / .Net

Я не знаю, какие разновидности поддерживаются в используемых вами языках и программах. IB Expert использует библиотеки Delphi, поэтому использует параметр # 2. Программы, написанные на Java, используют параметр # 1.


Кроме того, в настройках вашего соединения убедитесь, что для "charset connection" установлено значение UTF-8 или для вьетнамской кодовой страницы, которая может передавать все эти конкретные символы.


Кодировка UNICODE_FSS устарела. Если возможно, было бы лучше перейти на кодировку UTF-8, где это возможно.

44
задан Peter Mortensen 31 December 2016 в 21:18
поделиться

2 ответа

Необходимо будет смотреть на журнал ошибок Apache для наблюдения, какова "внутренняя ошибка сервера". Четыре наиболее вероятных случая, по моему опыту, был бы:

  1. программа CGI находится в каталоге, которому не включили выполнение CGI. Решение: Добавьте ExecCGI опция к тому каталогу или через httpd.conf или через .htaccess файл.

  2. Apache только настроен для выполнения CGIs от специализированного cgi-bin каталог. Решение: Переместите программу CGI туда или добавьте AddHandler cgi-script .cgi оператор к httpd.conf.

  3. программа CGI не установлена как исполняемый файл. Решение (принимающий *операционная система отклонять-типа): chmod +x my_prog.cgi

  4. программа CGI выходит, не отправляя заголовки. Решение: Запустите программу из командной строки и проверьте, что a) это на самом деле работает вместо того, чтобы умереть с ошибкой времени компиляции и b) это генерирует корректный вывод, который должен включать, в очень минимальном, Content-Type заголовок и пустая строка после последнего из ее заголовков.

19
ответ дан Peter Mortensen 26 November 2019 в 22:10
поделиться

Я предполагаю, что Вы смотрели на mod_perl?

Вы попробовали следующий учебное руководство ?

РЕДАКТИРОВАНИЕ: Относительно Вашей регистрации - возможно, Вы могли включать образец кода в Вашем .cgi файл. Возможно, даже первые несколько строк?

1
ответ дан toolkit 26 November 2019 в 22:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: