使用apache perl继续获取内部错误

时间:2015-08-13 06:07:16

标签: perl cgi

我有简单的登录页面。当我输入abc和123作为登录凭据时,它应该将我重定向到登录成功页面,但它一直给我内部错误。如果登录信息不是abc和123,它应该重定向到错误的登录页面。也许我的if语句错了。你能检查一下我的代码吗?请。

#!/usr/bin/perl

use CGI qw( :standard );

$user = param( "user" );
$password = param( "password" );

$user = param( "user" );
$password = param( "password" );

if ($user == "abc") && ($password == "123")
print redirect ( "../../login.htm" );
}

if (!$user ne "abc") || (!$password ne "123")
print redirect ( "../../wrong.htm" );
}

1 个答案:

答案 0 :(得分:1)

我将您的代码放入名为test.cgi的文件中,然后检查它是否存在编译错误。

$ perl -c test.cgi
syntax error at test.cgi line 11, near ") &&"
Unmatched right curly bracket at test.cgi line 13, at end of line
Unmatched right curly bracket at test.cgi line 17, at end of line
test.cgi had compilation errors.

这样就可以给你一些看的地方。您用于if语句的语法有两种方式。

以下是一些可以帮助您更有效地编写Perl代码的建议。

  1. 仅仅因为CGI程序是在Web服务器上运行的,这并不意味着它们只能在Web服务器上运行。养成在Web服务器环境之外检查编译错误的习惯。
  2. 当您测试在Web服务器上运行的CGI程序时,错误和警告将写入Web服务器错误日志。养成寻找有关问题的更多细节的习惯。
  3. 始终将use strictuse warnings添加到您的代码中并修复他们向您显示的问题。您的代码中至少还有一个问题可由use warnings找到。
  4. 最后,编写CGI程序并不是2015年编写Web应用程序的最佳方式。请查看some alternatives