CGI初心者です。
メールフォームは、HPのサンプル版から使いました(市販)。
送信ボタンを押すとエラーになります。プロバイダはOCNです。
http://kataefudousan.jp/contact.html
CGI初心者でよく理解ができません。
http://www.ocn.ne.jp/hosting/usersupport/mw/hp_c …
↑
CGIスクリプトについて説明があります。(OCN)
contact.cgi
↓
#!/usr/lolal/bin/perl
use CGIqw(:cgi-lib :standard);
print header();
# ご使用のサーバの perl コマンドへのパスを1行目(この上)に書いてください。
# 「#!」 の前には空白、改行などを入れないでください。
# わからない場合は、サーバの管理者へお問合わせください。
################################################################
# ご使用時に、この下を編集してください。
################################################################
# sendmail コマンドのパス(サーバ管理者にお問合わせください。)
$SENDMAIL = '/usr/lib/sendmail';
##### メール設定
# 管理者メールアドレス(このアドレスにメールが送信されます。)
$ADMIN_MAIL = 'with-a@u01.gate01.com';
# 管理者名前
$ADMIN_NAME = 'サンプル';
# メールサブジェクト
## ユーザあて
$USER_SUBJECT = 'フォームメールを送信しました。';
## 管理者あて
$ADMIN_SUBJECT = 'フォームからのメールです。';
################################################################
# ご使用時に、この上を編集してください。
################################################################
No.3ベストアンサー
- 回答日時:
私もCGIについて、詳しくないのですが・・・まず、jcode.plとSendMail.plがcgiファイルと同じ階層にあるか確認しましょう。
コチラからだと存在してないように思います。ファイルへの変更ですが、OCNの説明通りに記述するしかないと思います。シェルスクリプト1と2のあたりを確認ですかね。文法チェッカーも用意されてるみたいなので、これも活用しましょう。なにかヒントをもらえるかも。。。。CGIの設置は本当に面倒ですね。私の場合、編集しては検証の繰り返しで動作を確認してます。サーバーに負担がかかりますので、ローカルで検証してます。ところで、このCGIスクリプトはご自身で書かれたものでしょうか?それとも、どこかで入手されたものなんでしょうか?後者の場合なら、設置方法など書かれてると思うのですが。。。
Internal Server Error(500エラー)は、cgiが動作しないときに表示されます。.や;を間違って1文字消しただけでも返ってくるエラーです。また、cgiが使用する外部ファイルが存在しないとき、パーミッションが適切な設定になっていないときも吐き出されてきます。
煮詰まらないよう頑張ってください。
http://www.ocn.ne.jp/hosting/usersupport/mw/02.h …
http://www.ocn.ne.jp/hosting/usersupport/mw/hp_c …
http://www.ocn.ne.jp/hosting/usersupport/mailweb …
*ご確認済みでしたらお読み捨てを。。。
この回答への補足
contact.cgiをスクリプトチェッカーにかけたところ↓のエラーがでました。
syntax error at /u/web/kataef/cgi-local/contact.cgi line 2, near "(:"
/u/web/kataef/cgi-local/contact.cgi had compilation errors.
----------------------------------------------------------
#!/usr/lolal/bin/perl
use CGIqw(:cgi-lib :standard);
print header();
----------------------------------------------------------
↓2行目、:を;にしても試しました。
use CGIqw(;cgi-lib :standard);
-----------------------------------------------------------
use CGIqw(:cgi-lib :standard);
print header();
↑この2行はOCNで指定されています。
http://www.ocn.ne.jp/hosting/usersupport/mw/hp_c …
記述は間違ってないように思うんですが・・・
No.2
- 回答日時:
今度はCGIでお悩みのようですね。
「お問い合せ」のページソースでANo.1の指摘されている<form>のパスが違っているようです。cgi-bin/formmail.plが404エラーになります。ご質問文とからOCNの説明から「cgi-local/contact.cgi」へアクセスしてみたところ、500エラーになりましたので、cgiファイルはこのパスに存在することになります。が、Internal Server Errorですので、HTMLのパスを書き換えてもメールフォームは動作しません。contact.cgiをOCNのサーバーに合わせて編集してください。
この回答への補足
vista2446様
2回目の回答ありがとうございます!
>contact.cgiをOCNのサーバーに合わせて編集してください。
perlパス、sendmailパスを編集したんですが・・
後はどこを編集したらいいんでしょうか・・・?
No.1
- 回答日時:
サイトのそのページのソースを見ると
<FORM action="/cgi-bin/formmail.pl" となっていますが cgi-binというフォルダ名、また実行ファイル名formmail.plは正しいのでしょうか。
アップしたファイルとhtmlとを照らし合わせて確認してください。
上のプログラム名はcontact.cgiですよね。
また、OCNの説明を見ると/cgi-bin/フォルダ名でよいのか疑問です。
>4. ブラウザでCGIスクリプトへのパス"http://www.your_domain.co.jp/cgi-local/ファイル名"を直接入力するか、HTMLファイルからのリンクにより起動してください。
設置したいフォームはcontact.cgiだけで完了するプログラムなのか?一連の他のファイルがあるのかこれだけの情報ではわかりません。
セットになっているならすべてのファイルをサーバの指定された場所にあげてやる必要があります。
この回答への補足
回答ありがとうございます。
> <FORM action="/cgi-bin/formmail.pl" となっていますが cgi-binというフォルダ名、また実行ファイル名formmail.plは正しいのでしょうか。
FORM action="/cgi-bin/formmail.pl"
↓修正しました
FORM action="/cgi-local/contact.cgi"
今度はエラー内容が変わりました。
これは、どういうエラーなのでしょうか・・・?
ちなみにプロバイダはOCNですが、私のPCは別プロバイダでアップを行ってますが、それは問題ありませんか?
>設置したいフォームはcontact.cgiだけで完了するプログラムなのか?
↓上記に記載しているcontact.cgiの続きです。
################################################################
# ここから下はプログラムです。変更しないでください。
#
use lib "./lib";
require "jcode.pl";
use KCatch qw( jcode=sjis source );
use FormData;
require "SendMail.pl";
##### システム設定
# 文字エンコード
$charset = 'sjis';
# フォーム名
@FormName = (
'name_str_req'# お名前
,'email_mail_req'# メールアドレス
,'comment_str_req'# 内容
);
# エラー画面用フォーム表示名
%FormData = (
'name_str_req'=>'お名前'
,'email_mail_req'=>'メールアドレス'
,'comment_str_req'=>'内容'
);
####################
# フォームデータ取得
$obj = new FormData();
%in = $obj->CreateHash();
%FormHash = $obj->SelectHash(%in);
$mode = $in{'mode'};
####################
# モード分岐
if($mode eq 'comp'){
$body = <<EOF;
お名前 : $FormHash{'name_str_req'}
E-Mail : $FormHash{'email_mail_req'}
内容 :
$FormHash{'comment_str_req'}
EOF
## 管理者宛送信
MailSend(
$ADMIN_MAIL
, $ADMIN_SUBJECT
#, $FormHash{'comment_str_req'}
, $body
, $FormHash{'email_mail_req'}
, $ADMIN_NAME
, $FormHash{'name_str_req'}
, $bcc
, $addparam
, $charset
);
## ユーザ宛送信
MailSend(
$FormHash{'email_mail_req'}
, $USER_SUBJECT
#, $FormHash{'comment_str_req'}
, $body
, $ADMIN_MAIL
, $FormHash{'name_str_req'}." 様"
, $ADMIN_NAME
, $bcc
, $addparam
, $charset
);
require "./inc/contact_thanks.inc";
exit;
} else {# 確認画面
####################
# フォームデータチェック
$flag = $obj->FormDataCheck(\%FormHash,\%FormData,\@FormName);
if(!$flag){
$msg = $obj->GetErrorMessage();
require './inc/contact_error.inc';
exit;
}
####################
require "./inc/contact_conf.inc";
exit;
}
exit;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
index.html をブラウザで開...
-
FTPに接続し、 あるフォルダ内...
-
robocopyでファイルがあるのに...
-
FTP受信直後に受け取ったファイ...
-
WinSCPを使ってgetし、ローカル...
-
メールフォーム設置の仕方を教...
-
win2008serverでaspxを表示させ...
-
ファイルの作成・更新日時が200...
-
FFFTP アップロードできない
-
vi で上書き保存(:wq)すると...
-
xfz zxvf??
-
FTPのmputで出るnetoutについて
-
シェルでftp接続によるファイル...
-
通信速度(上り)について
-
win10にインストールしたOpera...
-
JPEGからRAWデータへの変換に関...
-
著作権法違反
-
SONY ICカードリーダー RC-S330...
-
ZIPファイル内のファイルを...
-
デスクトップ上のアイコンに赤...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイルの作成・更新日時が200...
-
FTPに接続し、 あるフォルダ内...
-
robocopyでファイルがあるのに...
-
win2008serverでaspxを表示させ...
-
バッチファイルでフォルダ内の...
-
FTPで見えるファイルと見えない...
-
Apache2.2.6にてBasic認証の設定
-
ApacheでSorryサーバを作りたい
-
Apacheのエラーログ「Directory...
-
シェルでftp接続によるファイル...
-
FTPのmputで出るnetoutについて
-
FTP受信直後に受け取ったファイ...
-
拡張子のhtmlをhtmに変更す...
-
読み取り専用ファイルとして認...
-
mcintosh(マッキントッシュ)...
-
バッチファイルにてFTPで指定し...
-
Windows Media Player7for Mac...
-
Macで作ったホムペをFetchでア...
-
Spotlight検索ができない、索引...
-
index.html をブラウザで開...
おすすめ情報