KENT-WEB サポートコーナー 過去ログ [ 0293 ]


記事No: 16575
投稿日: 2021/07/27(Tue) 20:35:58
タイトル送信するとSoftware error
ID情報: hanzo61
投稿者: hanzo
URLhttp://www.ebina-tedukuri.com/sankamosikomi.html

10年ほど使用していた
postmail v4.32からpostmail v9.5に入れ替えました。

「送信する」ボタンを押すとSoftware errorになり確認ページが表示されません。


ロリポップサポートとKENT様のページを何度も確認しながら設定しました。
どの設定がまちがっているのか教えていただきたいです。

どこかのパスがまちがっているのでしょうか?
パーミッション設定がまちがっているのでしょうか?
その他に確認するべき箇所を見落としているのでしょうか?
よろしくお願いいたします。

設置先http://www.ebina-tedukuri.com/sankamosikomi.html

ページ下部の「同意してメールで参加申込」をクリックすると
問題のページ
http://ebina-tedukuri.lolipop.jp/postmail/index.html


ロリポップレンタルサーバー
postmail以下はUTF-8でそれより上のページはShift-jis

PHP7.4(CGI版) charsetはUTF-8


ディレクトリ構成 (パーミッション)
   postmail /   index.html (604)
| postmail.cgi (700)
| check.cgi (700)
| init.cgi (600)
| style.css (604)
|
+-- lib / jacode.pl (700)
| | base64.pl (700)
| | index.html (604)
| | .htacces (604)
| +-- CGI / Minimal(705) --+-Misc.pm (700)
| +-Miltipart.pm(700)
| Mimimal.pm (700)
| minimal.pod(700)
|
+-- data / .htacces (604)
| index.html (604)
| log.cgi (600)
| ses.cgi (600)
|
+-- tmpl / mail.txt (604)
reply.txt (604)
conf.html (604)
thanks.html (604)
error.html (604)


postmail.cgiの1行目は#!/usr/local/bin/perlです


「送信する」をクリックすると
Software error: Died at postmail.cgi line 579.
と表示されます。
579行目を見ても私には何がまちがっているのかわかりません。


579行目は下記です;
#-----------------------------------------------------------
# エラー処理
#-----------------------------------------------------------
sub error {
my $err = shift;

open(IN,"$cf{tmpldir}/error.html") or die;[579行目]
my $tmpl = join('',<IN>);
close(IN);

# 文字置き換え
$tmpl =~ s/!key!/エラー内容/g;
$tmpl =~ s|!val!|<span class="msg">$err</span>|g;

print "Content-type: text/html; charset=utf-8\n\n";
print $tmpl;
exit;
}



Postmail.cgiの設定で疑問に思った箇所

# モジュール実行
use strict;
use CGI::Carp qw(fatalsToBrowser);
use lib './lib';
use CGI::Minimal; ←デフォルトのままですが良いのでしょうか?

require './lib/jacode.pl';
require './init.cgi';
my %cf = set_init();


init.cgiの設定は合っているのでしょうか?

# 本体プログラム【URLパス】
$cf{mail_cgi} = 'http://ebina-tedukuri.lolipop.jp/postmail/postmail.cgi';

# ログファイル【サーバパス】
$cf{logfile} = './data/log.cgi';

# セッションファイル【サーバパス】
$cf{sesfile} = './data/ses.cgi';

# テンプレートディレクトリ【サーバパス】
$cf{tmpldir} = './tmpl';

いろいろ調べてみましたが自分ではこれ以上わからず困っております
よろしくお願いいたします。


記事No: 16576
投稿日: 2021/07/27(Tue) 22:18:56
タイトルRe: 送信するとSoftware error
ID情報: teketen
投稿者: てけてん

チェックモードを見て下さい。
http://ebina-tedukuri.lolipop.jp/postmail/check.cgi
テンプレート ( conf.html ) : パスNG
テンプレート ( error.html ) : パスNG
テンプレート ( thanks.html ) : パスNG
テンプレート ( mail.txt ) : パスNG
テンプレート ( reply.txt ) : パスNG

ということで、
http://ebina-tedukuri.lolipop.jp/postmail/tmpl/error.html
にアクセスしたところ、エラー404が表示されました。
テンプレートファイルが、指定位置にアップロードされていないようです。


記事No: 16577
投稿日: 2021/07/28(Wed) 12:02:49
タイトルRe^2: 送信するとSoftware error
ID情報: hanzo61
投稿者: hanzo
URLhttp://www.ebina-tedukuri.com/sankamosikomi.html

> チェックモードを見て下さい。
> http://ebina-tedukuri.lolipop.jp/postmail/check.cgi
> テンプレート ( conf.html ) : パスNG
> テンプレート ( error.html ) : パスNG
> テンプレート ( thanks.html ) : パスNG
> テンプレート ( mail.txt ) : パスNG
> テンプレート ( reply.txt ) : パスNG
>
> ということで、
> http://ebina-tedukuri.lolipop.jp/postmail/tmpl/error.html
> にアクセスしたところ、エラー404が表示されました。
> テンプレートファイルが、指定位置にアップロードされていないようです。

解決しました!
早速のご指摘ありがとうございました。

初心者的なミスでした。
指定位置にアップロードされていないということは
ファイルのディレクトリのアップロート位置がまちがっているのかとKENT様のページを細かく照らし合わせてみたが
合ってる。

しかしtmplのディレクトリ名が違っているのを発見。

ファイルをアップロードする時に
頭で「テンプル、テンプル」と唱えながら
記載した文字はtenplになってました(苦笑)

tmplに直しただけで問題なく動きました。

チェックモードでどこを見れば良いのかということも分かり勉強になりました。
2週間も試行錯誤していたのにてけてん様のシンプル回答一発で解決できました。
本当に助かりました。
どうもありがとうございました。


[検索ページ]