2017-04-13 6 views
-3

私は404perl:なぜ404のhtml応答が得られますか?

最初のページはindex.htmlを URLでHTML応答のPerlのCGI発生したエラーを書き込むこと崇高テキスト3及びXAMPPを使用: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 / 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

コードには非常に多くの問題があります。どのように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コードの多くの構文エラーについて考え始めることができます。

関連する問題