Я хотел бы знать, как отлаживать сценарий cgi
, который не выводит HTML
.Отладка сценария CGI, который не печатает HTML
В настоящее время у меня есть страница входа в систему с формой html
, которая при передаче перенаправляет другой скрипт cgi
. Этот скрипт должен проверить, правильно ли введен пользователь.
Этот сценарий не распечатывает html
, поэтому я не уверен, как я должен его проверять. В настоящее время я получаю Internal Server Error
, когда перенаправление происходит с этим скриптом. В error.log
состоянии:
End of script output before headers:
Может кто-то пожалуйста, скажите мне, как я могу отладить этот скрипт?
Благодарим за помощь.
main.cgi
#!/usr/bin/perl -w
use CGI qw/:all/;
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
use CGI::Cookie;
use Data::Dumper;
use List::Util qw/min max/;
warningsToBrowser(1);
# print start of HTML ASAP to assist debugging if there is an error in the script
print page_header();
# Get Cookies
%cookies = CGI::Cookie->fetch;
# If no cookie, display login page
if (!%cookies){
# Redirects the user to login.cgi
print show_login_form();
}
#if cookie
# do something
print page_trailer();
login.cgi
use CGI qw/:all/;
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
use CGI::Cookie;
use Data::Dumper;
use List::Util qw/min max/;
warningsToBrowser(1);
$cookie_value = "";
# Convert request method to Uppercase eg: GET, POST
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
# If "POST" request sent, check login credentials
if ("$ENV{'REQUEST_METHOD'}" eq "POST"){
# Get login parameters
$username = param('username');
$password = param('password');
$loginCheckResult = check_login($username, $password);
# If login was successful, create a cookie
if ($loginCheckResult){
# Set Cookie
$cookie = CGI::Cookie->new(-name=>$cookie_value,-value=>$cookie_value);
# If login was Unsuccessful, redisplay the login page
} else {
# Do something here...
}
}
Пожалуйста, ваш скрипт. Знаете ли вы, что вы можете писать сообщения журнала, чтобы помочь отладить сценарий? –
@ialarmedalien Спасибо за ваш ответ. Нет, я этого не знал. –
Измените свои скрипты на 'use strict; используйте предупреждения, поэтому вы получите сообщения об ошибках с Perl. –