如何获取在perl cgi脚本中调用的cgi_error()函数

如何获取在perl cgi脚本中调用的cgi_error()函数,perl,cgi,Perl,Cgi,我有一个perl-cgi脚本,其中我需要根据cgi_error()发生的时间来测试一些东西。有人能告诉我在什么情况下调用cgi_error()函数吗。我在下面试过了 已更改脚本的所有者和权限 但到目前为止,这并没有起到任何作用 这是一段代码 use CGI qw(-compile :standard); ..... if (cgi_error()) { ... } 如果有人能解释脚本中何时自动调用cgi_error(),那就太好了 cgi\U错误不称为“自动”。但是,根据具体情况,它将返回

我有一个perl-cgi脚本,其中我需要根据cgi_error()发生的时间来测试一些东西。有人能告诉我在什么情况下调用cgi_error()函数吗。我在下面试过了

  • 已更改脚本的所有者和权限
  • 但到目前为止,这并没有起到任何作用

    这是一段代码

    use CGI qw(-compile :standard);
    .....
    
     if (cgi_error()) {
    ...
    }
    

    如果有人能解释脚本中何时自动调用cgi_error(),那就太好了

    cgi\U错误不称为“自动”。但是,根据具体情况,它将返回信息,以查看是否出现问题

    从CGI文档中:

    检索CGI错误 处理用户输入时可能发生错误,尤其是在处理上载的文件时。当这些错误发生时,CGI将停止处理并返回一个空参数列表。您可以使用
    cgi\u error()
    函数测试错误的存在和性质。错误消息的格式为HTTP状态代码。您可以将错误文本合并到HTML页面中,或将其用作HTTP状态的值:

    my $error = $q->cgi_error;
      if ($error) {
        print $q->header(-status=>$error),
        $q->start_html('Problems'),
        $q->h2('Request not processed'),
        $q->strong($error);
        exit 0;
      }
    
    使用面向函数的接口时(请参阅下一节),错误可能只在您第一次调用
    param()
    时发生。准备好了

    处理中断的文件上载 有时会出现解析上传文件的问题。这通常发生在用户在上传完成前按“停止”时。在这种情况下,CGI.pm将为上传文件的名称返回unde,并将
    CGI_error()
    设置为字符串“400错误请求(格式错误的多部分POST)”。此错误消息的设计目的是使您可以将其合并到要发送到浏览器的状态代码中。例如:

    $file = $q->upload('uploaded_file');
      if (!$file && $q->cgi_error) {
        print $q->header(-status=>$q->cgi_error);
        exit 0;
      }
    

    尝试发送大于
    $POST_MAX
    字节的POST将导致param()返回空CGI参数列表。您可以在创建cgi对象后,通过检查
    cgi\u error()
    ,或者在使用面向函数的接口时,第一次调用
    param()
    ,来测试此事件。如果帖子被截获,那么
    cgi\u error()
    将返回消息“413帖子太大”


    cgi\u错误
    不会被称为“自动”。但是,根据具体情况,它将返回信息,以查看是否出现问题

    从CGI文档中:

    检索CGI错误 处理用户输入时可能发生错误,尤其是在处理上载的文件时。当这些错误发生时,CGI将停止处理并返回一个空参数列表。您可以使用
    cgi\u error()
    函数测试错误的存在和性质。错误消息的格式为HTTP状态代码。您可以将错误文本合并到HTML页面中,或将其用作HTTP状态的值:

    my $error = $q->cgi_error;
      if ($error) {
        print $q->header(-status=>$error),
        $q->start_html('Problems'),
        $q->h2('Request not processed'),
        $q->strong($error);
        exit 0;
      }
    
    使用面向函数的接口时(请参阅下一节),错误可能只在您第一次调用
    param()
    时发生。准备好了

    处理中断的文件上载 有时会出现解析上传文件的问题。这通常发生在用户在上传完成前按“停止”时。在这种情况下,CGI.pm将为上传文件的名称返回unde,并将
    CGI_error()
    设置为字符串“400错误请求(格式错误的多部分POST)”。此错误消息的设计目的是使您可以将其合并到要发送到浏览器的状态代码中。例如:

    $file = $q->upload('uploaded_file');
      if (!$file && $q->cgi_error) {
        print $q->header(-status=>$q->cgi_error);
        exit 0;
      }
    

    尝试发送大于
    $POST_MAX
    字节的POST将导致param()返回空CGI参数列表。您可以在创建cgi对象后,通过检查
    cgi\u error()
    ,或者在使用面向函数的接口时,第一次调用
    param()
    ,来测试此事件。如果帖子被截获,那么
    cgi\u error()
    将返回消息“413帖子太大”


    什么消息返回cgi\U错误()?您阅读了吗?什么消息返回cgi\U错误()?您阅读了吗?