• 締切済み

携帯&PCで表示可能なカウントダウンスクリプトの設置

携帯・PC共に表示可能な、ページに埋め込み型のカウントダウンができるスクリプトを設置したいと考えています。 そこで発見したのが以下のSSIのスクリプトです。 http://210.143.110.54/soft/cgi/xday.html しかし、自分はperlに関する知識がないので、いまいち設置の仕方がよくわかりません。(SSI式のカウンターなどは設置に成功しています) <!--#exec cmd="./xday.pl yyyymmdd"-->で呼び出すとありますが、 サーバがXREAなのでexec cmdが使えません。 何か対応策はありませんでしょうか?

  • CGI
  • 回答数2
  • ありがとう数3

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

>print "Content-type: text/html\n\n"; >これはどこの部分に挿入すればいいんでしょうか? >一応ソースの一番最後の行に挿入してみましたが…。 最初のprintの前までに出力していないといけません。なので   print "Content-type: text/html\n\n";   if ($span > 3) {     print "目的の日まであと ",$span," 日です";   } elsif ($span > 0) {     :     : といった感じでしょう。

hurry-xmas
質問者

補足

回答ありがとうございます。 遅くなってしまい、本当に申し訳ありません。 とりあえず今は、 / └ public_html/  ├ index.shtml  └ xday.pl このような階層で、<!--#exec cgi="./xday.pl"-->と指定しています。 どうやらXREAは引数を指定できないようでした。 すると、 CGIWrap Error: Execution of this script not permitted Execution of (xday.pl) is not permitted for the following reason: Script is not executable. Issue 'chmod 755 filename' となってしまいました。どうやらパーミッション604では駄目みたいで。 そこで705にしてみたところ Script Error The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with .cgidextension, or add a AddHandler cgi-script-debug .cgiline to your .htaccess file. となってしまいました汗 print "Content-type: text/html\n\n";はもちろん入れているんですが…。 <!--#include virtual="./xday.pl"-->なども試しましたが同じ結果でした。 拡張子のせいなのかな…などと思っていますが一体原因はなんなのでしょうか?今一度お助けください。。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

#XREAのサポードボードでFAQの気がしますが・・ 「exec cmd」はダメですが「exec cgi」は使えます。CGIを改造してhttpヘッダを返すようにすればexec cgiで動かせると思いますよ。 (蛇足) httpヘッダってこんなの↓です。提示されたCGIには(exec cmdが前提なので)入ってないと思います。   print "Content-type: text/html\n\n";

hurry-xmas
質問者

補足

print "Content-type: text/html\n\n"; これはどこの部分に挿入すればいいんでしょうか? 一応ソースの一番最後の行に挿入してみましたが…。 -------- xday.pl を適当なディレクトリに配置し実行属性をセットします ※ 使用目的に応じて内容も若干書き換えます 準備ができたら以下の書式で呼び出します <!--#exec cmd="./xday.pl yyyymmdd"--> コマンドへのパスは環境に応じて適宜変更してください 引数として目的の日を yyyymmdd で指定します -------- 配布先にはこのように書いてあるんですが、 パーミッションは604、 / └ public_html/ ├ index.shtml └ xday/ └ xday.pl 階層はこのような感じなのですが、 <!--#exec cgi="./xday.pl 20080401"--> とやってみましたが、やはり[an error occurred while processing this directive] となってしまいました。 なぜでしょうか。。

関連するQ&A

  • Apache2.2でPerlを呼び出すSSIを使ったHTMLをloca

    Apache2.2でPerlを呼び出すSSIを使ったHTMLをlocalhostで動かそうとしています。 AddHandler cgi-script .cgi .plに変更。 exec cmdをHTMLファイルに埋め込みました。 <!--#exec cmd="/PROGRA~1/APACHE~1/Apache2.2/cgi-bin/counter.pl counter"--> インターネットのApacheでSSIを使う方法を読み,httpd.confの中に Options FollowSymLinks Multiviews の後にIncludesをつけ   AddType text/html .shtml と   AddHandler server-parsed .shtml を加えました。しかし、localhostで実行するとHTMLのSSIの部分だけ表示されません。 (アクセスカウンターのカウンターだけ表示されません)。エラーログには ”指定されたファイルが見つかりません。 : don't know how to spawn cmd child process: C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/counter.shtml” と記録されていました。 どうしたらよいのでしょうか。 どなたか解決できるかた、回答よろしくおねがいします。

    • 締切済み
    • CGI
  • SSIの『#exec cmd』と『#exec cgi』の違いがよくわかりません

    SSI初心者の者です。 参考書(CGIプログラミング入門/翔泳社)を見ながらCGIとSSIの勉強をしてるのですが、SSIの『#exec cmd』と『#exec cgi』の違いがよくわかりません。 本には前者はPerlスクリプトで後者はCGIスクリプトの場合に使うって書いてあるのですが、この2つってどう違うのですか? 前後の文脈から察するにCGIスクリプトは『print "Content-Type: text/html"』があって、 Perlスクリプトはこれが無いものと読み取れるのですが そうなのでしょうか? 初心者向けに御回答していただけますよう、よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • カウンター設置について

    http://happy.honesto.net/cgi/ にあるdaycounter(SSI)をDLしてtok2で設置を試みたのですが、 どうもうまくいきません。  アクセス総数:<!--#exec cmd="./count.cgi total"--><br> 本日のアクセス数:<!--#exec cmd="./count.cgi today"--><br> 昨日のアクセス数:<!--#exec cmd="./count.cgi yesterday"--><br> としてみたのですが、何も表示されません。 また、exec cgiや、include virtualを使ったら、 [an error occurred while processing this directive] とでてしまいました。 どうしたらいいのでしょうか? tok2ではSSIを使用できると書かれていたのですが・・・・ ちなみにパーミッションはtok2推奨の、 ディレクトリ:lock・・・701 count.cgi・・・700 count.dat・・・600 としました。 どなたか設置方法を教えてください。

    • 締切済み
    • CGI
  • ローカルサーバーでの動作確認

    CGI超初心者です. 翔泳社のPERL/CGI辞典を見ながらCGIに挑戦してます. 今ローカルサーバーでの動作確認すべく奮闘しているのですがCGI/SSIを使用するためのAPACHEの設定で頭を悩ませてます. CGIはうまく表示できたのですがどうしてもSSIが表示されないのです. ファイルは本通りに記述したつもりです. 「test.shtml」 <HTML> <BODY> <!--#exec cmd="test.pl" --> </BODY> </HTML> 「test.pl」 #!C:\perl\bin\perl print"hello!"; CGI/SSIはドキュメントルートで制限なく使用できるよう設定しました. test.shtmlは表示されてるようなんですがそこにtest.plが読み込めてないようです(よく分かりませんが…) どこが悪いのか全く分かりません. ブラウザ上でこのtest.shtmlのソースを確認したら<!--#exec cmd="test.pl" -->の部分が表示されてませんでした. 全くの初心者でどのような情報を開示すればよいのか分からないので必要な情報があれば教えていただけるとありがたいです.

    • ベストアンサー
    • CGI
  • SSIが認識されない

    こんにちは。 アクセスカウンターを設置したいのですが、HTML文にタグを埋め込んでも認識してくれません。 ちなみに以下のように書いています。 <!--#exec cmd="./counter.pl"--> <!--#include virtual="./counter.cgi"--> わたしのプロバイダはexecが使用不可なので、include用にプログラムを書き換えているのですが、counter.plもcounter.cgiも文法チェックでは特に問題は発見されません。 counter.cgiに直接アクセスするとちゃんと動いているので、プログラムの問題ではないような気がします。 フリーで配られているカウンターでやってみてもダメでした。 HTMLの問題なのでしょうか? それともブラウザー? どなたかわかる方がいらっしゃいましたら、助けてください!! お願いいたします。

    • 締切済み
    • CGI
  • カウントダウン タグだけが表示されません。

    レンタルサーバーは使えるねっと http://www.tsukaeru.net/ を使ってるのですが カウントダウンタグ(SSI)が表示されません。 カウントダウンタグは↓の通りです。 ---------------------------- /usr/bin/perl ues strict; use Time::Local; #2006/1/1 00:00:00を目的日時とする場合 my $end_time = timelocal(0,0,0,1,0-1,2006-1900); my $countdown = $end_time - time; my $days = int($countdown / (60*60*24)); my $hour = int($countdown % (60*6024))/(60*60)); my $tmp_min=int(($countdown % (60*60*24))%(60*60)); my $min = int($tmp_min / 60); my $sec = $tmp_min % 60; print<<"EOM"; $days日と$hour時間$min分$sec秒 EOM exit; 1; -------------------------------- ↓のように書いて別のページにカウントダウンを表示させようとしてます。 <!--#exec cmd="./countdown.shtml" --> ご指南のほどよろしくお願いします。

    • ベストアンサー
    • CGI
  • SSIで表示させるときの各ファイルのパス

    SSIで日記をトップページに表示させようとしています。 CGIは./cgi-bin/day/に保存してます。 トップでSSI表示(<!--#exec cmd="cgi-bin/day/day.cgi" -->)させるためには各ファイルもそこからのパスが必要ですよね。 (require './cgi-bin/day/jcode.pl';) しかし、こうすると記事を入力するときにエラーが出てしまいます。 (./cgi-bin/day/day.cgiから見るとjcode.plは./cgi-bin/day/cgi-bin/day/の場所になってしまう。その他datファイルも同じ) これを解消する何か良い方法は無いでしょうか? 例えば、「cgi-bin/day/」の位置に指定ファイルが無ければ「./」の位置を探すとか、SSI表示部分は切り離して別ファイルにするとか… 良い方法があったら教えてください。

    • ベストアンサー
    • CGI
  • カウンタがリセット

    SSI式のテキストカウンタを使ってます。 前のサーバーでは1年間問題なく動いたのですが、 最近レンタルサーバーを変更して最初の1ヶ月ぐらいは問題なかったんですが、 ここ数日カウンタ値が0にリセットされることが多いのです。 Perlのパスは合っていますし、呼び出してるページの拡張子はshtmlにしてますのでそのあたりは問題ないと思うのですが。 関係あるかはわかりませんが、重くてアクセスできないことがあるんです。 しばらくすると何ともなかったように表示されるんですが前述のようにそのときカウンタ値がおかしくなってることがあります。 参考までに<!--#exec cmd= ・・・・で呼び出すスクリプトです。 なにが問題なのでしょうか?

    • 締切済み
    • CGI
  • iswebライト cgi 設置方法

    レンタルサーバiswebライトで自分のHPを作っています. http://cgiscriptmarket.com/script.htmlで配布されているスロットマシン風のカウンタcgiを使用したいのですが上手くいきません. このiswebはcgiの許可がされてます.指定のcgi-binのディレクトリを作り,その中にダウンロードしてきたcountのフォルダを入れました.ffftpを使ってreadmeにあるように転送モードもパーミッションも確認しました. ダウンロードしたファイルで書き換えた箇所は以下だけです. cgiの中の $dir = "./count/"; を$dir = "./cgi-bin/count/"; に変更. カウンタを貼り付けたいhtmlの<BODY>を<BODY onLoad="run()">に変更. その下に(SSIの使用が許可されているので) <!--#exec cmd="./count/count.cgi"--> を貼り付けました.その後アップロードしてもWEBでは何の変化もなくカウンタの表示もありません.自分で考えられることは全てしたつもりですが,どうしても出来なくて..どなたかお願い致します.

    • ベストアンサー
    • CGI
  • Apach2でSSIコマンドが実行出来ないのですが教えてください

    環境は、自宅サーバ、WindouwsXP、Apache/2.0.53 (Win32) PHP/4.3.10 mod_jk2/2.0.2です。 [httpd.conf SSI関連設定] AddType application/x-server-parsed .shtml AddHandler server-parsed .shtml AddHandler cgi-script .cgi .pl .bat [SHTMLファイル] <HTML><HEAD><TITLE>counttest</TITLE></HEAD><BODY> あなたは<!--#exec cmd="countlog/count.pl" -->人目のお客様です。 </BODY></HTML> [count.plファイル] #!c:/perl/bin/perl $file="C:/ProgramFiles/Apachegroup/Apache2/htdocs /nandemokan/countlog/numfile"; open(FILE, "<$file"); #人数ファイルを読んで 以下省略 http://localhost/nandemokan/index.shtml [SHTML実行結果] あなたは人目のお客様です。 http://localhost/nandemokan/countlog/count.pl [直接SSIを指定した結果] Internal Server Error なお、コマンドプロンプトからcount.plを実行すると 正常にカウンタが出力されます。 ANHTTPDではうまくいったのですが、Apache2で出来なくて困っています。よろしくお願いします。

    • ベストアンサー
    • CGI