2017-04-13 1 views
-3

나는 html로 응답 펄 CGI 오류를 발생 작성하는 숭고한 텍스트 3 XAMPP를 사용하는 404perl : 왜 html 응답에서 404가 발생합니까?

첫 번째 페이지가 index.html을하다 URL : htdocs에

<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> 

두 번째 내부 XAMPP에 http: // localhost/aa / 금주 모임 폴더 페이지 cgiDemo.pl URL입니다 : 항상 요청 된 URL을 보여 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"; 

어느 쪽이 문제입니까 고맙습니다

+1

실제 코드 인 경우 문제가 많습니다. 시작을 위해서는 변수의 sigil과 이름 사이에 공백을 넣을 수 없습니다. '$ mydata '는 구문 오류입니다. 먼저 스크립트의 상단에'use strict'와'use warnings'을 넣고 오류를 수정하십시오. 또한 당신이 무엇을하고 있는지 전혀 모르는 것처럼 보이기 때문에 당신이 가서 당신의 교재를 읽으라고 제안합니다. 우리는 여기서 프로그래밍을 가르쳐주지 못합니다, 미안 해요. – simbabque

+0

왜 이렇게 많은 여분의 공간이 있습니까? 확실히 그것은 복사 및 붙여 넣기 오류입니다. –

답변

0

코드에 많은 문제가 있습니다. 나는 당신이 펄을 어떻게 배우려고하는지 잘 모르겠다. 그러나 나는 조금 더 노력해야한다고 생각한다 :-)

당신의 설명은 분명하지 않지만, 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 코드에서 많은 구문 오류를 생각할 수 있습니다.

관련 문제