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


記事No: 16191
投稿日: 2019/10/25(Fri) 20:53:50
タイトルweb-patioの管理人機能について
ID情報: KK2947
投稿者: KK
URLhttp://chocotto.sumomo.ne.jp/wp-bbs/admin.cgi

お世話になります。
WEB PATIOの管理人機能は「admin.cgi」のようですが、URLにリンクすると、

-------------------------------------

ソフトウェアエラー:
lib / CGI / Session.pm行804の「$ plug qw(driver serializer id)」付近の構文エラー
lib / CGI / Session.pm行812の「my」で「= $ 1」付近のグローバル$ 1を使用できません
グローバルシンボル「%SUBDIR_FOR」には、lib / CGI / Session.pm行815で明示的なパッケージ名が必要です(「my%SUBDIR_FOR」を宣言するのを忘れましたか?)。
グローバルシンボル「$ self」には、lib / CGI / Session.pm行822で明示的なパッケージ名が必要です(「my $ self」の宣言を忘れましたか?)。
lib / CGI / Session.pm行828、「}」付近の構文エラー
lib / CGI / Session / ExpireSessions.pm 39行目でrequireでコンパイルに失敗しました。
BEGINが失敗しました-lib / CGI / Session / ExpireSessions.pm行39でコンパイルが中止されました。
admin.cgi 14行目でrequireでコンパイルに失敗しました。
BEGINが失敗しました-admin.cgi行14でコンパイルが中止されました。

-------------------------------------


と表示されてしまいます。
Ver: 5.12をDLし、Perlのパスとパーミッションを変更したのみでも同じエラー文が出ました。

一体どうすればエラーが出なくなりますか?
使用しているサーバーはさくらのレンタルサーバーです。


記事No: 16196
投稿日: 2019/11/04(Mon) 23:10:28
タイトルRe: web-patioの管理人機能について
ID情報: KK2947
投稿者: KK
URLhttp://chocotto.sumomo.ne.jp/wp-bbs/admin.cgi

原文ではなかったため、エラーコード載せておきます。


Software error:
syntax error at lib/CGI/Session.pm line 804, near "$plug qw(driver serializer id)"
Can't use global $1 in "my" at lib/CGI/Session.pm line 812, near "= $1"
Global symbol "%SUBDIR_FOR" requires explicit package name (did you forget to declare "my %SUBDIR_FOR"?) at lib/CGI/Session.pm line 815.
Global symbol "$self" requires explicit package name (did you forget to declare "my $self"?) at lib/CGI/Session.pm line 822.
syntax error at lib/CGI/Session.pm line 828, near "}"
Compilation failed in require at lib/CGI/Session/ExpireSessions.pm line 39.
BEGIN failed--compilation aborted at lib/CGI/Session/ExpireSessions.pm line 39.
Compilation failed in require at admin.cgi line 14.
BEGIN failed--compilation aborted at admin.cgi line 14.
For help, please send mail to the webmaster (support@sakura.ad.jp), giving this error message and the time and date of the error.


記事No: 16203
投稿日: 2019/11/10(Sun) 12:20:06
タイトルRe^2: web-patioの管理人機能について
ID情報: kent
投稿者: KENT

> 原文ではなかったため、エラーコード載せておきます。
>
>
> Software error:
> syntax error at lib/CGI/Session.pm line 804, near "$plug qw(driver serializer id)"
> Can't use global $1 in "my" at lib/CGI/Session.pm line 812, near "= $1"
> Global symbol "%SUBDIR_FOR" requires explicit package name (did you forget to declare "my %SUBDIR_FOR"?) at lib/CGI/Session.pm line 815.
> Global symbol "$self" requires explicit package name (did you forget to declare "my $self"?) at lib/CGI/Session.pm line 822.
> syntax error at lib/CGI/Session.pm line 828, near "}"
> Compilation failed in require at lib/CGI/Session/ExpireSessions.pm line 39.
> BEGIN failed--compilation aborted at lib/CGI/Session/ExpireSessions.pm line 39.
> Compilation failed in require at admin.cgi line 14.
> BEGIN failed--compilation aborted at admin.cgi line 14.
> For help, please send mail to the webmaster (support@sakura.ad.jp), giving this error message and the time and date of the error.

これはセッションモジュールの版数と、サーバ側のPerlのバージョンが合わないためだと思います。

新バージョンのモジュール Session.pm を搭載した、web patio v6.0で試してみてください。


記事No: 16222
投稿日: 2019/12/23(Mon) 22:14:47
タイトルRe^3: web-patioの管理人機能について
ID情報: KK2947
投稿者: KK
URLhttp://chocotto.sumomo.ne.jp/wp-bbs/admin.cgi

> これはセッションモジュールの版数と、サーバ側のPerlのバージョンが合わないためだと思います。
>
> 新バージョンのモジュール Session.pm を搭載した、web patio v6.0で試してみてください。


お忙しい中、迅速な対応ありがとうございます。
v6.0に変更し、パーミッションとperlへのパスを変更しました。
ですが、Internal Server Errorになります。check.cgiも表示出来ませんでしたし、admin.cgiも試しましたが同様の結果でした。


記事No: 16223
投稿日: 2019/12/24(Tue) 19:59:08
タイトルRe^4: web-patioの管理人機能について
ID情報: KK2947
投稿者: KK
URLhttp://chocotto.sumomo.ne.jp/wp-bbs/admin.cgi

> お忙しい中、迅速な対応ありがとうございます。
> v6.0に変更し、パーミッションとperlへのパスを変更しました。
> ですが、Internal Server Errorになります。check.cgiも表示出来ませんでしたし、admin.cgiも試しましたが同様の結果でした。

すみません、バイナリモードで転送してました。

v6.0でもadmin.cgiにエラーが発生するようです。
check.cgiは全てOKになっていましたし、管理画面以外は正常に動くようです。

エラー文載せておきます。


Software error:
syntax error at lib/CGI/Session.pm line 804, near "$plug qw(driver serializer id)"
Can't use global $1 in "my" at lib/CGI/Session.pm line 812, near "= $1"
Global symbol "%SUBDIR_FOR" requires explicit package name (did you forget to declare "my %SUBDIR_FOR"?) at lib/CGI/Session.pm line 815.
Global symbol "$self" requires explicit package name (did you forget to declare "my $self"?) at lib/CGI/Session.pm line 822.
syntax error at lib/CGI/Session.pm line 828, near "}"
Compilation failed in require at lib/CGI/Session/ExpireSessions.pm line 39.
BEGIN failed--compilation aborted at lib/CGI/Session/ExpireSessions.pm line 39.
Compilation failed in require at admin.cgi line 14.
BEGIN failed--compilation aborted at admin.cgi line 14.
For help, please send mail to the webmaster (support@sakura.ad.jp), giving this error message and the time and date of the error.


記事No: 16224
投稿日: 2019/12/28(Sat) 18:59:55
タイトルRe^5: web-patioの管理人機能について
ID情報: KK2947
投稿者: KK
URLhttp://chocotto.sumomo.ne.jp/patio-tori/admin.cgi

それと、この件とは別なのですが...
スレッドにID表示を付け加えたいです

./tmpl/read.html

35~39,65~69にID情報がコメントアウトされていたので消しました。
すると、ID情報の枠組みは表示されるようになりましたが、IDが!id!,!id_res!となっていました。
件名や投稿日なども!sub!,!data!のように定義されていたので、id,id_resもコメントアウトされてるのかな?とCGI,htmlを探したのですが見つかりませんでした。

ID情報を表示させるにはどこを変更したらよいのでしょうか?


記事No: 16225
投稿日: 2019/12/31(Tue) 10:42:51
タイトルRe^5: web-patioの管理人機能について
ID情報: kent
投稿者: KENT

> > お忙しい中、迅速な対応ありがとうございます。
> > v6.0に変更し、パーミッションとperlへのパスを変更しました。
> > ですが、Internal Server Errorになります。check.cgiも表示出来ませんでしたし、admin.cgiも試しましたが同様の結果でした。
>
> すみません、バイナリモードで転送してました。
>
> v6.0でもadmin.cgiにエラーが発生するようです。
> check.cgiは全てOKになっていましたし、管理画面以外は正常に動くようです。
>
> エラー文載せておきます。

エラー文を見る限りは、
lib/CGI/Session.pm
のバージョンが古いように見えます。

エディタを中身を確認し、7行目が以下になっていますか?

$CGI::Session::VERSION = '4.48';


記事No: 16227
投稿日: 2020/01/01(Wed) 16:25:27
タイトルRe^6: web-patioの管理人機能について
ID情報: KK2947
投稿者: KK
URLhttp://chocotto.sumomo.ne.jp/patio-tori/admin.cgi

> エラー文を見る限りは、
> lib/CGI/Session.pm
> のバージョンが古いように見えます。
>
> エディタを中身を確認し、7行目が以下になっていますか?
>
> $CGI::Session::VERSION = '4.48';

確認すると、
$CGI::Session::VERSION = '4.43';
となっていました。

自分でverを上げることは可能なのでしょうか?


記事No: 16235
投稿日: 2020/01/21(Tue) 18:04:41
タイトルRe^7: web-patioの管理人機能について
ID情報: KK2947
投稿者: KK
URLhttps://chocotto.sumomo.ne.jp/patio/admin.cgi

お久しぶりです、CGIを勉強しながらプログラムとの睨めっこを続けていると進展しましたので記述しておきます。

なぜか、lib/Session.pmとlib/CGI/Session.pmがあることに気が付き、少し自分で内容見比べてみました。

lib/Session.pmの7行目は「$CGI::Session::VERSION = '4.48';」、lib/Session.pmの7行目は「$CGI::Session::VERSION = '4.43';」となっていました。

なので、もしかしたらlib/CGI/Session.pmは全体が古い記述なのでは?と思い、エラー文を見ながら比較すると、lib/CGI/Session.pmの804行目に括弧で括り忘れているようです。

具体的には、

lib/Session.pmの804行目

for my $plug (qw(driver serializer id)) {

lib/CGI/Session.pmの804行目

for my $plug qw(driver serializer id) {



これも、一応なのですが...

lib/CGI/Session.pmの1332行目の
「Auto-flushing can be unreliable for the following reasons. Explicit flushing after key session updates is recommended.」という記述のExplicitがExplictになっていました。

この二点を直すと、admin.cgiが動くようになり、管理画面を確認することが出来るようになりました。




それから、Perl基礎入門や色々なサイトで調べたりもしたのですが、!で囲まれた文字が理解できません。例えば、「$tmp =~ s/!res_name!/$nam/g;」の!res_name!がどこで定義されているのか分かりません。正規表現の中でしか利用されていませんが、これは変数で別ファイルから値を引用しているのですか?ご教授お願いします...


記事No: 16394
投稿日: 2020/10/20(Tue) 22:59:14
タイトルRe^7: web-patioの管理人機能について
ID情報: heba3542
投稿者: heba

> 確認すると、
> $CGI::Session::VERSION = '4.43';
> となっていました。
>
> 自分でverを上げることは可能なのでしょうか?

かなり昔の投稿なのでもう解決しているかも知れませんが、、
https://metacpan.org/pod/CGI::Session
上のページで左欄のダウンロードボタンから
「CGI-Session-4.48.tar.gz」をダウンロードして解凍すると、livフォルダ→CGIフォルダの中に4.48のSession.pmがあります。


[検索ページ]