電子書籍の厳選無料作品が豊富!

サーバーは無料のXREA.COM
作成ソフト:ホーページビルダー クラシック(HomePageBuilder V.20)(以下HPBとします)
ホームページ内にアンケートを埋め込み、回答をメールで送るようにしたいです。

スマホを対象にしたサイトですが、スマホでもPCでも Internal Server Error が発生します。
対応方法がわかりませんので、ご享受ください。


HPBの部品を使いテキストボックス内に記入した文を「送信」ボタンでメール送信のつもりでいます。
HPBの記述(anketo.html内の該当部のみ)

不足している情報もあるかと思いますので、ご指摘ください。

<!--  ここから  -->
<div id="HPB_ELQNRDIV">
<form name="HPB_ELQ_QUESTION" onsubmit="return HpbELQCheck();" onreset="HpbELQReset();" action="anketo.cgi" method="GETT"><br>

<blockquote>
<p>下記入力後、送信ボタンを押してください。</p>
<p><textarea name="Q1" rows="10" cols="30"></textarea></p>
</blockquote>
<p align="center"><input type="submit" name="HPB_ELQ_SUBMIT" value="送信"></p>
</form>
</div>

<!--  ここまで  -->


サーバーはCGI使えるとのことなので、次のanketo.cgiおよびjcode.plををanketo.htmlと同じフォルダにアップデート。
なお、HPBが用意しているCGIとplのファイルで、記述内容は全く理解できません。
最低限のanketo.cgiの1行目とsendmailのパス、メールアドレスは環境に合わせているつもりです。

----ここから anketo.cgi -----
#!/usr/local/bin/perl
#
#------ sendmailパスの指定 ----------------------------------------------
# 以下の、$mailprogに、サーバー上にある"sendmail"コマンドをフルパスで
# 記入します。詳しくは、プロバイダのガイドに従ってください。
# (例) $mailprog = '/usr/lib/sendmail';
$mailprog = '/usr/sbin/sendmail';
#------------------------------------------------------------------------
#------ メールアドレスの指定 ------------------------------------------
# 以下の、$mailtoに、アンケートの送り先となるメールアドレスを記入します。
# (例) $mailto = 'mailaddress@sample.justsystems.jp';
$mailto = 'xxxxx@yyyy.co.jp';
# ↑ここにはメールアドレス記述
#------------------------------------------------------------------------


require 'jcode.pl';

#Get the input
read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

#Split the name-value pairs
@pairs = split (/&/,$buffer);

foreach $pair(@pairs)
{
($name, $value) = split(/=/, $pair);

#Un-Webify plus signs and %-encoding
$value=~tr/+/ /;
$value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;

$FORM{$name} = $value;
if ( $name ne "to" ) {
push (@fields, $name) unless (grep(/^$name$/, @fields));
}
}

#
### 送信フォーマット
#

$mail_msg = "";

foreach $field (@fields) {
$mail_msg = "$mail_msg-----------------------------------------------\n";
$mail_msg = "$mail_msg($field) $FORM{$field}\n";
}
$mail_msg = "$mail_msg-----------------------------------------------\n";

#
### ShiftJis to Jis
#
&jcode'convert(*mail_msg, 'jis');
open(MAIL,"| $mailprog $mailto")|| die "Can't open $mailprog!\n";
print MAIL $mail_msg;
close(MAIL);
#
### Make the person feel good for writing to us
#
print "Content-type: text/html\n\n";
print "<HTML><HEAD><TITLE>Thank you!</TITLE></HEAD>\n";
print "<BODY bgcolor=\"#9dffff\">\n";
print "<H2 align=\"center\">入会申込みを受付けました。</H2>\n";
print "<HR>\n";
print "<P>\n";
print " 入会完了の連絡があるまで、しばらくお待ちください。\n";
print "</BODY></HTML>\n";

#---- anketo.cgi ここまで-----

jcode.plだけで6000行超えるので、ここに記述できませんでした。

A 回答 (1件)

パーミッションをまず疑ったら?

    • good
    • 0
この回答へのお礼

パーミッションを777にしたらあっさり動きました。
777でいいのかはよくわからんけど...^^;
これまでもパーミッションはイジったつもりだったんだけど、サーバー上でイジってて、ftpで上書きしたら元に戻っていたんでしょうね。

今回はローカル側でイジってftpでアップロードしました。

ありがとうございました。

お礼日時:2016/06/21 10:52

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