ランダムでトピックを選ぶスクリプト

[上に] [前に] [次に]
もぐ1998 [E-Mail] [HomePage] 1998/10/28(水) 23:02:06
お久しぶりです。今度はスクリプトの質問です。

HTMLファイルの中に <!--#exec cmd=・・・> とやって
Perl スクリプトを実行させ、このスクリプトであらかじめ
作ってあるテキストファイルをランダムで読み込んで
それを <!--#exec cmd・・> のところにそのファイルの
内容を書き換えたいのです。ちょうど <!--#include file-->の
ランダム版というところでしょうか。

さて、これを作ったのですがHTMLファイルにその文章を
出力してくれないのです。Telnetで実行するとちゃんと返してくれるのですが、
HTMLでさっき書いたように<!--#exec cmd-->を使っても、
そこの部分が空白になってしまうだけで、何も表示されないのです。

なぜでしょうか?教えて下さい。お願いします。

もぐ1998 [E-Mail] [HomePage] 1998/10/28(水) 23:06:55
ソースをアップしておきました。
こっちも見てみて下さい。お願いします。

http://www02.so-net.ne.jp/~intro/newsp/pub.txt

あと、Telnetで
perl -wc topic.pl(このファイル)
とやったら文法はあっていると出ました。

B-Cus 1998/10/29(木) 01:59:24
ありがちなミス。

1. exec cmdで実行したときのカレントディレクトリを勘違いしている。
2. データファイルのパーミッション

で、こういうのはprintをばしばし埋め込んでいきましょう。
 print "\$filename = $filename"
とか、
 if ( -r "$filename" ){
  print "I can read $filename";
 } else {
  print "I cannot read $filename";
 }
とか、
 open(IN,"$filename") || print "cannot open!";
とかやってれば原因がわかるでしょう。

もぐ1998 [E-Mail] [HomePage] 1998/10/29(木) 20:32:14
やってみました。でもできませんでした。
それに、Telnetで実行してみたんです。
それならばうまくいったんですが。
たぶん、いけないのはHTMLに
書き出すことのような気がするんです。
でも print でいいんですよね?
なにがいけないんだろ。原因がよく分からないんです。
再びお願いします。

Tiot 1998/10/29(木) 22:22:12
><!--#exec cmd=・・・> とやって
SSIの設定で#exec cmdは使えるようになっていますか?
確認して、もし駄目なら
<!--#include file="〜"-->
<!--#include virtual="〜"-->
を、使って解決できませんか?
うちのプロバイダ(hi-ho)は#exec cmdが使えない代わりに#include virtualで
cgiスクリプトの結果を取り込むように、という指示があります。

もぐ1998 [E-Mail] 1998/11/03(火) 18:00:45
[[解決]]
ありがとうございました。
絶対パスにして解決できました。
本当にありがとうございました。

[上に] [前に] [次に]