• ベストアンサー

CGI_Lite.pmは,Perl6.5.1 で使えますか?

 私は初心者です。本を見ながら付属CDに入っていた掲示板セットをアップロードしましたが正常に動作しませんでした。いろいろ試行錯誤をした結果、どうやら「CGI_Lite.pm」というものが原因らしく、それはPerlのバージョン4では使えないということまでは知りました。  私のアップロードしているレンタルサーバのバージョンは6.5.1ですが、「CGI_Lite.pm」は機能しないのでしょうか?初心者故に的外れな質問かもしれませんが、どうか宜しくお願い致します。

  • Perl
  • 回答数3
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

えー乗りかかった船ですのでついでに確認します。 ・CGI_Lite なり、CGI::Lite なりを使わないCGIは正常に動作しますか? ・サーバーにアップロードする前に構文チェックはしていますか? perl -c スクリプト名 とすると、実行はせずに構文チェックだけを行ってくれます。 実際にサーバーにアップロードする前にこれぐらいのチェックはしましょう。 ・CGI.pmだと、コマンドラインから擬似的にパラメータを与えて実行させることができます。CGI::Lite/CGI_Liteでも多分できると思うのですが、 できたとして、その出力は期待通りのものですか? 最後にPerlのバージョンについて。 Perl のバージョン6は現在開発途上にあり、何年も前から 「いったいいつリリースされるのよ」とFAQになっているくらいです。 開発者用バージョンを除けば、最新のバージョンは5.8.8です。 ですから、6.5.1などというバージョンは存在しないはずなのです。 実際に使っているバージョンは、特殊変数 $] を出力するCGIを組めばわかります。

korehakomatta
質問者

お礼

 再度の御回答真に有り難う御座います。  CGI_Liteを使わないCGIは正常に動きました。また、他のサーバで試したところCGI_Liteも正常に動きました。かなり増刷されている本(増田 若奈著,自分でオリジナル掲示板を作ろう!)のCDでしたので、恐らくそのままでは問題ないはずですが・・・。  問題のサーバで「スクリプトチェッカー」というサービスを利用したら「CGI_Liteが読めない」というような感じのエラーが出ました。そこで、調べている内にCGI_LiteはPerl5対応であるということから、サーバーの仕様に「Perl6.5.1」と書かれていたため、使えないのかと思いました。まだ存在しないバージョンを誤記しているとは思いもよりませんでした。 ところで折角お答えいただきましたが、私は「コマンドライン」という言葉がわからないような初心者ですので、更に問題が起きないよう、今回CGI_Liteはあきらめます。  本当に有り難う御座いました。

その他の回答 (2)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

その後の話を読んでいると、動かしたいサーバーにCGI_Liteがインストールされていない だけではないのかという気がするのですがその辺どうなのでしょう? インストールされていないのなら、 use CGI_Lite; の一行だけで失敗します。 あと、入力したスクリプトをいきなり本番のサーバーで動かして試してたりするんですか? もしそうなら、それはちょっとやめたほうが。 コマンドラインで実行というのは、Windowsならコマンドプロンプト(DOSプロンプト) を開いて、そこで perl スクリプト のように入力して実行するというものです。

korehakomatta
質問者

お礼

 再度の御回答真に有り難う御座います。  レンタルサーバーにCGI_Liteがインストールされている必要があるとのこと、全く確認しませんでした。(本にもかかれていませんでした)  私は本に付属するCDの中に入っていた物をそのまま使っていたため、安全だと思い本番のサーバーで試していました。今回この分野は相当難しい作業だという事を知りましたので、今後は慎重に取り組みたいと思います。御回答いただき大変勉強になりました。有り難う御座いました。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

Perlのバージョンが6.5.1というのは5.6.1の間違いですか? CGI_Liteを使っているとのことですが、 CGI_Lite - Perl module to process and decode WWW forms and cookies. - search.cpan.org http://search.cpan.org/~shgun/CGI_Lite-1.8/CGI_Lite.pm ↑これですか? これによると、1997年のリリースを最後に手が入っていないようです。 Perl5.6.0のリリースが2001年なので、動かない可能性はあると思います。 なんという本を参考にされているのかわかりませんが、もうちょっと新しめの 本を探したほうがよいような気もします。

korehakomatta
質問者

お礼

初心者の変な質問に、丁寧な御回答真に有り難う御座います。

korehakomatta
質問者

補足

 Perlのバージョンですが、レンタルサーバーの仕様欄には以下の通り書いてあります(コピー)。 「Perl のバージョン 2004年9月1日現在の Perl のバージョンは 6.5.1 になります。」  これをそのまま信じて質問してしまいました。実際には存在しないのでしょうか?  CGI_Liteですが、リンク先の物と同じ物のようです。私の使った本は確かに1999年10月発行のある古い本でした。調べるとCGI_Lite更新版のCGI::Liteというものが出ていましたので試しましたがやはりだめでした。  

関連するQ&A

  • [Perl] CGI_Lite.pmでファイル名取得できない

    CGI_Lite.pmを使用してファイルをアップロードするCGIを書いていますが、ファイル名によっては、名前の途中までが消えてしまいます。 cgiとhtmlは、以下のとおりです。EUC、Shif-JISの両方で、また、LinuxとWindowsXPの両方で試してみました。 例 「可能性.txt」というファイルをアップすると、 「性.txt」というファイル名になります。 環境: CGI_Lite.pmは、2つのバージョンを試してみました。 (1), CGI_Lite 2.02 http://search.cpan.org/~smylers/CGI-Lite-2.02/Lite.pm (2), CGI_Lite 1.8 http://search.cpan.org/dist/CGI_Lite/ OSなど (1), WindowsXP + AnHTTPd + Perl5.8.8 (2), SuSE Linux + Apache2.0 + Perl5.8.3 ■アップするHTML <html> <form action='test.cgi' ENCTYPE='multipart/form-data' method='post'> <input type="file" name="file1"> <input type="submit"> </form> </html> ■アップされるCGI(test.cgi) #!/usr/bin/perl use CGI::Lite; my $cgi=new CGI::Lite; $cgi->add_timestamp(0); $cgi->set_directory('./') or die $!; $cgi->set_platform ('Unix'); $cgi->set_buffer_size (10000); my %in = $cgi->parse_form_data(); print"Content-type: text/html\n\n"; print"-->$in{'file1'}\n"; 以上、よろしくお願いします。

    • 締切済み
    • CGI
  • CGI_lite.pmを使ったファイルのアップロード

    CGI_lite.pmを使いファイルをアップロードしたところちゃんとファイル自体はアップロードできているのですがファイル名が変わってしまっています。 たとえば「index.html」というファイル名ならば「980815043__index.html」と なってしまいます。 サーバーはunixです。 どうか詳しい方教えてください。お願いします。

    • ベストアンサー
    • CGI
  • CGI掲示板アップロード、403エラー

    WEBサイト製作初心者のものです。 Perlで作られたフリーの掲示板をダウンロード、 借りたレンタルサーバーにcPanelをつかってCgi-bin にアップロード。 このようにすれば、レンタルサーバーにアクセス、 Index of のcgi-binを選択すれば、掲示板が表示されるはずですが 403 アクセス権のエラーと表示されてしまいます (cPanel付属のCRMソフトはインストール後Index ofから選択すれば正常に表示されます) 3つの条件 Perlのバージョン、アップロード先ディレクトリ、 フォルダごとのパーミッション設定は、推奨設定どおりになってます。 どうしてこのエラーが出るのでしょうか?

    • ベストアンサー
    • Perl
  • ファイルのアップロード Perl5.8

    ファイルのアップロードでCGI::Liteを使っています。 PerlはActivePerlのバージョン5.8ですが アップロード先のデータの中身が変わってしまい、 画像データなのに別のファイルになって表示されなくなりました。 これはファイル自体の文字コード変換が絡んでいるということですか? また、CGIとCGI::Liteの違いですが、両方使ってもよいのでしょうか?

    • ベストアンサー
    • Perl
  • CGI::Liteでファイルのアップロード

    Perl5.8でCGI::Liteを使ってファイルのアップロードをするつもりですが、ファイル名が日本語の場合とファイルの中身が文字化けして保存されています。 文字コードはutf8で統一させているのですが、 例えば、テスト.txtというファイルで中身がEUC-JPのファイルをアップロードしてもアップロード先でファイル名が化けずに中身もEUC-JPで保存されるようにしたいのですが、どういう関数を施せば良いでしょうか? CGI::Liteに変わる他のモジュールでもあるのでしょうか?

    • ベストアンサー
    • Perl
  • SOAP::Liteを利用したい!

    Linux上でPerlを用いて use SOAP::Lite .... というプログラムを書いたのですが、 これを実行させると Can't locate SOAP/Lite.pm in @INC(@INC contains : /usr/local/lib/perl5/5.8.5/i686-linux.... SOAP/Lite.pmが含まれていないというエラーメッセージが表示されます。 現在使っているPerlのバージョンが5.8.5であり、SOAP/Lite.pmがないみたいです。 このコンピュータには5.005のバージョンがあり、ここには、 SOAP/Lite.pmが /usr/lib/perl5/site-perl/5.005/Apache/ /usr/lib/perl5/site-perl/5.005/XMLRPC/ の下にあります。 5.8.5のバージョンで、設定を変えてこれを利用したいと思っているのですが、設定の変え方がわかりません。どのような方法がありますか?教えてください。

    • ベストアンサー
    • Perl
  • perl niftyについて。use CGI;

    画像アップロードのスクリプトを作ろうと思っているのですが、 use CGI; という記述をすると、ここでエラーに引っかかります。 下はperl checkerでのエラー表示です Can't locate CGI.pm in @INC (@INC contains: /usr/local/lib/perl5/5.00503/sun4-solaris /usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/site_perl/5.005/sun4-solaris /usr/local/lib/perl5/site_perl/5.005 .) at a.cgi line 10. BEGIN failed--compilation aborted at a.cgi line 10. 参考URLはここ http://www.topstudio.co.jp/~kmuto/html/node38.html niftyでは使えないようになってしまっているのでしょうか? また、CGI.pmを使わないファイルアップロードの仕組みを解説しているサイトを知っている方がいたら、教えてくださいませ。

    • ベストアンサー
    • CGI
  • フリーのCGI(Perl)で・・・・

    宜しくお願いします。 フリーのCGI(Perl)で、 画像アップロード可能掲示板で、 投稿(書き込み)された後、 管理者がその投稿を確認するまで、 一般公開に反映されない、画像アップロード可能掲示板 等は、ありますでしょうか? この様な仕様でしたら、掲示板タイプで無くても構いません。 過去に、どこかのホームページで、使っているのを、 見たことが、あるのですが、、 捜しても、見つけることが出来ませんでした。 もし、配布先を知っている方がいましたら、 教えて下さい。宜しくお願い申し上げます。

    • ベストアンサー
    • Perl
  • cgiとplとpm

    掲示板ソースをダウンロードするとplやpmという拡張子のものがありました。中身はPerlでした。 拡張子の使い分けを教えてください。 適当に4つのルールを書いてみましたので、間違っていたり、追加するルールがありましたから教えてください。 1 ブラウザがそれ自身にアクセスし、ブラウザのアドレスバーに表示させるならcgiにするべき。 2 Perlのpackageの機能を使うなら、パッケージファイルはplかpmでなくてはならない。 3 Perlのrequireの機能を使うなら、その外部ファイルはplでなくてはいけない。 4 Perlのuseの機能を使うなら、その外部ファイルはpmでなくてはならない。

    • ベストアンサー
    • Perl
  • ダウンロードしたCGIに付属する Perl について

    無知な質問ですみません。ゲームやレンタル及びフリーCGIなどに必ずついてくるPerlですが、ひとつひとつ別物ですか?10個のCGIには10個のPerlが必要なのでしょうか?書かれている内容は私がダウンロードしてきたものは全て同じように思うのですが(バージョンも同じ)これってひとつで使い回しができないのでしょうか?

    • ベストアンサー
    • CGI

専門家に質問してみよう