現在アンケート収集のため、アンケートフォームの作成を行っています。
試行錯誤しているのですがどうしてもinternal server errorとなってしまうためご質問させてください。
下記がhtml、plの記述です。
----------------------------------------------------------------------------------------
[HTML]
<form action="check.pl" method="post">
<table>
<tr>
<td>■実施日</td>
</tr>
<td><input type="text" name="date" value="" /></td>
</tr>
<tr>
<td><input type="submit" value="送信確認" /></td>
</tr>
</table>
</form>
----------------------------------------------------------------------------------------
[Perl]
#!/usr/bin/perl/
use CGI;
$cgi = new CGI();
$date = $cgi->param('date');
$cgi->charset('Shift-JIS');
$date = $cgi->escapeHTML('$date');
use Date::Simple;
if($date eq Date::Simple::data($date)) {
$date_check ='ok';
} else {
$date_check = ''error;
}
print $cgi->header(-type=>'text/html',-charset=>'Shift-JIS');
print $cgi->start_html(-title=>'送信確認',-lang=>'ja');
print '実施日';
print $date;
if($date_check eq 'error') {
print '(入力形式を確認してください。)';
}
print '<br />';
print $cgi->end_html();
----------------------------------------------------------------------------------------
Date:Simpleなどのエラーチェック機能を削除するとperlのエラーは検出されなかったのですが、動作しません。
パーミッションは755です。
念のため拡張子を.cgiに変更して試しましたが変化はありませんでした。
(※テスト用のcgiは動作しました。)
原因がお分かりの方がいらっしゃいましたら、ご回答お願い致します。
No.2ベストアンサー
- 回答日時:
ソースをそのままコピーしたものですか?
No.1さんとかぶりますが、
$date = $cgi->escapeHTML('$date');
'$date'は、シングルクォートは、いらないのではないでしょうか?
あと、
> Date::Simple::data
これは、Date::Simple::dateではありませんか?最後は「a」ではなく「e」です。
> $date_check = ''error;
シングルクォートが二つ前にあって、errorを括っていません。
以上、ざっと見た範囲で、気になった部分を書いてみました。
No.1
- 回答日時:
use CGI;
use CGI::Carp qw(fatalsToBrowser);
とすると、エラーの発生場所がブラウザでわかって便利です。
パッと見、$date = $cgi->escapeHTML('$date'); が変です。'$date'という文字列にしかなりません。
use CGI;
$cgi = new CGI();
$date = '12345678';
$hoge = $cgi->escapeHTML('$date');
print $hoge, "\n";
---
$ perl foo.pl
$date
そもそも、$cgi->paramでアンエスケープ処理されるので、$date = $cgi->escapeHTML('$date');は不要です。
ご回答ありがとうございます。
参考書籍に書いてあったものを鵜呑みにしてしまいましたがescape不要だったんですね。
大変参考になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CGIの中にinclude
-
Quantifier follows nothing in...
-
環境変数に任意の文字列をセッ...
-
cgiとplとpm
-
さくらレンタルサーバーのライ...
-
月の第一週とは
-
毎○曜日って、使いますか?
-
週2回のペースって だいたい何...
-
エクセルで相対パスの書き方を...
-
エクセルで毎月第2週日の水曜日...
-
日付から曜日を求めたい
-
アンケートなどの1日1回の投...
-
BASE64でエンコードしてPOSTし...
-
平日朝の国道246線混雑状況につ...
-
よくある 『 第○(1・2・3・4・...
-
SFTP自動化
-
外部データをhtml上で表示させ...
-
メールをPDF化する際に、ヘッダ...
-
VBA。複数のChangeイベントをま...
-
ユーザー定義の(aaa)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jcode.plが読み込めない
-
バイナリファイルのアップロード
-
cgiとplとpm
-
Perlから他のcgiへPOSTでデータ...
-
htmlからテキストを返すperlを...
-
CGIの中にinclude
-
require文が実行できない
-
useとrequireでエラー
-
自CGIのURLのパス部分を取得す...
-
掲示板などのCGIでモード別機能...
-
gifcat.pl:助言お願い致します
-
Quantifier follows nothing in...
-
mt-check.cgiでForbiddenエラー...
-
perlのcgiで、変数の中身を表示...
-
コマンドラインでGET or POSTで...
-
perlのrequireの動き方について...
-
error_logファイルの中身で教え...
-
cgiからcgiをコールする。
-
ログイン成功の後は?
-
拡張子を省略してcgiを実行する...
おすすめ情報