プロが教える店舗&オフィスのセキュリティ対策術

皆様こんばんは。メールフォーム作成で困っております。
練習中なのでありますがホームページビルダー11に付いていました
メールフォームCGIを利用しレンタルサーバーへUPしてみましたが
Internal server error500と出てしまいます。

レンタルサーバーはPerlとsendmailはOKです。
ファイル構成です。
index.html
kansou.htm
kansou.cgi 
jcode.pl です。同じディレクトリです。FFFTでパーミッションは755にしてあります。アスキーモード利用

kansou.cgiの最初のあたり
------------------------------------
#!/usr/bin/perl
#
# (C) COPYRIGHT International Business Machines Corp. 1999
# All Rights Reserved
#

#------ sendmailパスの指定 -------------------------------------
# 以下の、$mailprogに、サーバー上にある"sendmail"コマンドをフルパスで
# 記入します。詳しくは、プロバイダのガイドに従ってください。
# (例) $mailprog = '/usr/lib/sendmail';
$sendmail = '/usr/sbin/sendmail';
$mailto = 'aaa@aaaa.co.jp';
#---------------------------------------------------------------
require 'jcode.pl';
ここまで。

-------------------------------------
kansou.htmの最初あたりのHTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE>感想ページ</TITLE>
</HEAD>
<BODY bgcolor="#ffffff">
<H2 align="center"><I>お問い合わせフォーム<BR>
<BR>
下記に必要事項をご記入の上、送信ボタンを押して下さい。</I></H2>
<HR>
<FORM action="kansou.cgi" method="POST"><INPUT type="hidden" name="to" value="aaa@aaaa.co.jp">
<CENTER>

このあたりまで記載します。
どこが悪いのか何度試してもよく分りません。
どなたかアドバイスして頂けないでしょうか。

A 回答 (3件)

自分もperl、CGIは勉強中ですが気づいた点を。




一行目の「!」と「/」の間にスペースがないのはエラーの原因になるのではないでしょうか?
また、パーミッションがサーバの指定と異なるということはありませんか?

プログラム内のミス以外で気づいたのはこんなところです。
    • good
    • 0

index.html、kansou.htm、kansou.cgi、jcode.plの全てのパーミッションを「755」にされていますか?


おそらく「kansou.cgi」のみパーミッション「755」にするだけでいいと思うのですが。
※他のは「644」で変更する必要は無いと思いますよ。
ホームページビルダー付属のCGIを見たことがないので全く自信ありませんかせ。

あと、このCGIには脆弱性が発見されており、修正プログラムが配布されています。
こちらを使われたほうが安全だと思います。
CGIスクリプト内部とフォームタグの書き方も換わっています。
[ホームページ・ビルダーのサンプルCGIの脆弱性]
http://www-06.ibm.com/jp/software/internet/hpb/s …
http://www-06.ibm.com/jp/software/internet/hpb/s …
http://www-06.ibm.com/jp/software/internet/hpb/s …
    • good
    • 0

> $sendmail = '/usr/sbin/sendmail';


↑↑↑↑↑
sendmailパスの変数は、$mailprog ではないのですか?
$mailprog = '/usr/sbin/sendmail';
    • good
    • 0
この回答へのお礼

ご連絡ありがとうございます。

$mailprog = '/usr/sbin/sendmail';
この部分が問題でした。
無事動きました。有難う御座いました。

お礼日時:2008/02/12 09:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!