Perl   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为什么我的Perl CGI抱怨“过早结束脚本标题”?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我相信有人可以很快回答这个问题,但我只是新来的…

我正在尝试修改demarc(一个简单的网络监视工具)来对一个简单的脚本进行系统调用.脚本本身什么都不做,我只是想做一个’概念验证’,因为我不断收到内部服务器错误.脚本的权限已设置为777.当我评论system()调用时,一切都很好.所以这让我怀疑它是发生错误的system()调用.我也尝试过exec(),但这也不起作用.错误不能出现在脚本本身,因为其中只有一个echo“test”.

我是否错过了任何权限或是否有其他方法使这项工作?任何建议将不胜感激.

sub generate_ticket {
   my @args = ("$base_path/test.pl");
   exec(@args);
}

这在文件中的某处称为:

} elsif ($FORM{'delete_type'}=~/generate/) {
    my $message = &generate_ticket($delete_array_ref);
    #&ack_events($delete_array_ref);
    $events_deleted = (@$delete_array_ref);
    &push_message("<FONT COLOR=red><B>Result: $message.</B></FONT>");
}

test.pl:

#!/usr/bin/perl
print "Test";

错误日志:
[Mon Nov 30 14:58:22 2009] [错误] [client 127.0.0.1]脚本标题的提前结束:demarc,referer:http://localhost/dm/demarc?td=show_events&limit=60&sid=35

解决方法

“脚本标题的过早结束”本身并不是一个非常有用的错误消息.它可能是由许多事情引起的,例如:

>不可执行(权限问题)
>编译失败(语法错误,依赖性问题等)
>在常规执行期间过早终止
>生成除正确的http标头之外的其他内容作为脚本的第一个输出

但是,在这种情况下,如果我们要逐字地采用您的示例脚本(打印“TEST”),并在http标头之前输出它,那么您不会首先生成http标头,因此它是最后一个. Web服务器需要标头,而不是“TEST”.

如果情况并非如此,我们需要查看代码的更多内容以了解可能发生的情况.例如,可能是执行test.pl的权限问题.

大佬总结

以上是大佬教程为你收集整理的为什么我的Perl CGI抱怨“过早结束脚本标题”?全部内容,希望文章能够帮你解决为什么我的Perl CGI抱怨“过早结束脚本标题”?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。