Perlを使用した簡単なフォームアプリケーションの開発中にエラーが発生しました。Perlを使用したシンプルフォームアプリケーション
これは私のhtmlです。
<html>
<head>
<meta charset="UTF-8">
<title>Kayıt Formu</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<h2>Kayıt Formu</h2>
<form id="signup-form" action="/sample_perl_application/signup.cgi" method="GET">
<div class="form-group">
<label for="name">Ad</label>
<input class="form-control" id="name" name="name" type="text"/>
</div>
<div class="form-group">
<label for="surname">Soyad</label>
<input class="form-control" id="surname" name="surname" type="text"/>
</div>
<div class="form-group">
<label for="age">Yaş</label>
<input class="form-control" id="age" name="age" type="text"/>
</div>
<div class="form-group">
<label for="sexual">Cinsiyet</label>
<select class="form-control" id="sexual" name="sexual">
<option id="male">Bay</option>
<option id="female">Bayan</option>
</select>
</div>
<input class="btn btn-default" id="save" name="save" type="submit" value="Kaydet"/>
</form>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</html>
これは私のperlスクリプトです。
#!"c:\xampp\perl\bin\perl.exe"
use strict;
use warnings;
use CGI;
local ($buffer, @pairs, $pair, $name, $value, %FORM);
# Read in text
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
if ($ENV{'REQUEST_METHOD'} eq "GET") {
$buffer = $ENV{'QUERY_STRING'};
}
# Split information into name/value pairs
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%(..)/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
$name = $FORM{name};
$surname = $FORM{surname};
$age = $FORM{age};
$gender = $FORM{sexual};
print CGI::header();
print $name." ".$surname." ".$age." ".$gender;
このようなエラーがあります。 msgstr "ヘッダの前にスクリプト出力の終わり:signup.cgi"。 問題を解決するにはどうすればよいですか?
まず、どのようなエラーが発生しているかを調べる必要があります。 Webサーバーは通常、CGIスクリプトのstderr出力をエラーログに送信します。 – ikegami
しかし、あなたは、あなたが変数を宣言していないことから、 'use strict;'を使って、あなたがそうするように強制したいと言っているにもかかわらず、プログラムを見ることはできません。 – ikegami
CGI.pmを使用している場合、なぜCGI要求を解析していますか? 'param'を使ってください! – ikegami