我用Sublime Text 3和xampp写了一个html响应perl cgi遇到错误404
第一页是index.html
网址:http: // localhost / aa /
在htdocs内的xampp上的一个文件夹
<HTML>
<HEAD> <Title> CGI with lighttpd and Perl </ Title> </ HEAD>
<BODY>
<Form METHOD = GET ACTION = echo site_url ("C: \ xampp \ cgi-bin \ cgiDemo.pl")> <BR>
Class:
<INPUT type = radio name = class value = "3A"> 3A
<INPUT type = radio name = class value = "3B"> 3B
<P>
Input Your ID Here: <input type = "text" name = "studentID">
<BR>
Input Your Name Here: <input type = "text" name = "studentName">
<P>
<INPUT TYPE = submit VALUE = "Send"> <INPUT TYPE = reset VALUE = "Clear">
</ P>
</ Form>
</ BODY>
</ HTML>
第二页是cgiDemo.pl
网址:http: // localhost / aa / echo? Class = 3A & studentID = & studentName =
CgiDemo.pl放在xampp cgi-bin文件夹中
始终显示请求的网址
#! "C: \ xampp \ perl \ bin \ perl.exe"
Print "Content-type: text / html \ n \ n";
Print "<html> <head> <title> HELLO! </ Title> </ head>";
Print "<body> \ n";
Print "<h2> CGI is working !!! </ h2> \ n";
# Print "String = $ ENV {'QUERY_STRING'} \ n \ n <p>";
@values = split (/ & /, $ ENV {'QUERY_STRING'});
Foreach $ i (@values) {
($ Varname, $ mydata) = split (/ = /, $ i);
Print "$ varname = $ mydata \ n \ n <p>";
}
Print "</ body> </ html> \ n";
哪一方是个问题 谢谢
答案 0 :(得分:0)
您的代码中存在很多问题。我不确定你是如何学习Perl的,但我认为你需要付出更多的努力: - )
您的描述不是很清楚,但我认为您说在HTML页面中提交表单时会出现404错误。这几乎肯定意味着表单元素上的“action”属性包含无效的URL。所以让我们从这一行开始:
<Form METHOD = GET ACTION = echo site_url ("C: \ xampp \ cgi-bin \ cgiDemo.pl")>
正如人们在评论中提到的,此代码中的空格太多。希望这是在将代码从您的机器切割到此站点的过程中添加的问题。所以也许它真的像这样:
<Form METHOD="GET" ACTION='echo site_url ("C:\xampp\cgi-bin\cgiDemo.pl')>
然后就是那个奇怪的echo site_url(...)
电话。我完全不确定是什么技术 - 但你有一个文件路径,而不是URL。我认为应该更像是:
<Form METHOD="GET" ACTION="cgi-bin/cgiDemo.pl">
随着这些方面的变化,应该找到你的CGI程序。然后,您可以开始考虑Perl代码中的许多语法错误。