• 締切済み

CGIの中でSSIが出来ないので直接呼び出したいのですが...

データベースCGIを改造中です。 左にデータベース内のジャンルをリスト表示し、右側にリスト一覧・データ詳細を表示するようにしたいと思っています。 ジャンル一覧にはそのジャンルのレコード数をSSIで表記しています。 リスト表示はsearch.cgiで管理、レコード数表示はcount.cgiで表示させるようにしています。また、レコード数表示のcount.cgiはジャンル数確認以外にも利用しています。 リストを表示する手前に置くジャンル一覧ページはhtmlで作っています。レコード部分は<!--#include virtual="./count.cgi?mode=genre&genre=1" -->と言うような書き方をしています。 リスト表示のsearch.cgiをデザインを統一する為スキンを利用する形で作成しようとしています。しかし、上で使ったジャンル一覧ページをそのまま利用しようとしたのですが、SSIを利用したレコード数の表示が出来ません。 そこで、CGIの中でSSI的なものを表示させたいと思うのですが、どのようにしたら良いでしょうか? ふと考えたのは「count.cgiからジャンル数をチェックする部分を抜き取りそれをsearch.cgiのサブルーチンとして動作させ、そのサブルーチンを動作させるようにスキン部分にどうにかコードを書込みする」 と言うものですが、この「スキン部分にどうにかコードを書込みする」の部分がさっぱりです。 sub count部分は、「リスト取得」→$in{'genre'} == $genreだったら$ken++ →結果表示、としています。 頭がこんがらがって考えがまとまってないです。 どう考えればば良いでしょうか?

  • CGI
  • 回答数1
  • ありがとう数0

みんなの回答

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

任意の場所に $in{'mode'} = genre; $in{'genre'} = 1; require 'count.cgi'; と入れてもだめですかね?

関連するQ&A

  • SSI対応じゃないCGIをSSI対応に…

    ホームページに更新記録CGIを設置しているところです。 それ自体はIFRAMEでページに表示させるタイプで、現在ちゃんと動作しています。 しかし1つ問題が…ちょっとページデザインを換えようと思っているのです。 素材配布ページなんですけど、上に一覧の入り口を表で作り、その表の幅を600に設定しました。 その下に同じようなデザインで更新記録CGIをIFRAME表示させようとしました。 しかし、なぜか微妙に左にずれています。更新記録CGIの表はもちろん600に設定しています。IFRAMEの方はスクロールバー分ずれるだろうと思いちょっと広め(680)にして、IFRAME自体はセンターへ、中の表示も中央に設定しました。でも、ずれてしまいます。 この方法をどうにかする方法があればうれしいのですが、どうせならSSIで表示できないかと考えました。これだとセンター表示されるのでは?でも、スクロールはどうなるのかな…際限なく(CGIの表示設定数)表示されるんですかね。 で、現在使っている物がSSI対応じゃないCGIのようです。これをSSI表示させることは可能でしょうか? サーバのほうは、SSI表示OKでした。 私自身はCGIを0から作ることは出来ませんが、ある程度の改造をすることは可能です。私が出来る(理解できる)かどうかは逐一答えて行きたいと思っています。 何か良い方法がありましたら教えてください。

    • ベストアンサー
    • CGI
  • SSIでの"?"の使い方

    ある検索エンジンCGIのログを流用してトップページにSSIで表示しようとしています。 検索エンジンはいくつかのジャンルに分かれています。トップページに表示する分もジャンルで分けたいと思います。また、保存されているデータの最新10件を表示したいと考えています。 そのため以下のようにやってみました。 ページには □ジャンル1 <!--#exec cmd="./list.cgi?pt=0" --> □ジャンル2 <!--#exec cmd="./list.cgi?pt=1" --> ~~ CGIは ---------------------- #!/usr/bin/perl $w_new = 10; require './jcode.pl'; print "□ジャンル1<BR>\n"; #この行はテスト用ダミーです。 open (FILE,"./cgi-bin/navi/A.bak"); $i=0; while (<FILE>) { $i++; local($no,$pt,$sub,$hp,$name,$email,$pw,$msg,$dt,$ts,$rec,$axs) = split(/<>/); if ($pt eq $in{'pt'}){ print "<A href=\"$hp\">□$sub</A><BR>\n"; if ($i >= $w_new) { last; } } } close(FILE); exit; ------------------------ $ptがジャンル、$subが表示名、$hpがアドレスです。 こうすると何も表示しません。 また、 <!--#exec cmd="./list.cgi" --> というかんじで"?"を抜くとダミー用文「"□ジャンル1」が表示されます。(SSIが表示できないわけではないと言う確認) SSIのときは"?"は使用できないのでしょうか? また、スクリプトはこれであっているのでしょうか?(合ってないから表示しないわけで…(T.T))

    • ベストアンサー
    • CGI
  • SSI(CGIに値を渡したい)

    htmlにプルダウン、チャックボックス、テキストボックスを用意します。 入力や選択をし検索ボタンを押してCGIに値を渡し表示するという感じです。 ↑現在問題無く動いてます。 search.html(プルダウン、チャックボックス、テキストボックス) ↓値を渡す display.shtml ↓値を渡す ↑結果を渡す search.cgi それをプルダウン、チャックボックス、テキストボックスの値を SSIからCGIに値を渡す事は可能ですか?? それと可能な場合 結果が多い場合は「前12345次」の様に ページを分けて表示するのですが可能でしょうか?? 宜しく御願いします。

    • 締切済み
    • CGI
  • SSIで表示させると?

    ホームページ作成中です。 トップページに商品一覧(TEXT)があり、クリックするとその商品紹介ページに移動するようにリンクを張っています。 現在商品が1つ増えるとindex.htmlをいちいち開いてリンクを張るようにしているのですが、これをCGI(SSI)で表示しようかと考えました。 ただ、CGI表示だと困ったことがおきます。全体をCGI等のページにしてしまうと検索エンジンに引っかからなくなりますよね。 また、リスト部分だけiframeで使用するとリストが検索に引っかからなくなりますよね。 商品の中には社名より商品名の方がメジャーな物がいくつかあり、実際アクセス解析しても社名より商品名で検索している人が多いため、これが検索にヒットしないと言う状況は絶対避けたいのです。 そこで、SSIで表示した場合はどうなるのでしょうか? ソースで確認すると普通にhtml表示されてますよね。 検索にヒットしないのだったら使用したくは無いのですが… (<meta>にキーワードを入れればいいのでは?と言うのは無しでお願いします。その手間を省くためにCGIでの処理をしようとしているのですから…) よろしくお願いします。

    • ベストアンサー
    • CGI
  • ロールオーバーを含むリンクをSSIで管理

    ホームページのコンテンツが不定期に増減するので、メニューをCGIで管理しようかと考えています。 単純に考えて、メニュー部分だけをSSIで表示するようにしようと思うのですが、1つ問題があります。 メニューにロールオーバーを利用しているのですが、ロールオーバーを利用すると、ヘッダー内にロールオーバー画像のリストを掲載する必要がありますよね?(ホームページビルダーのロールオーバーではそうなっていました) これを、ヘッダー部分には共通のスクリプトのみ表示し、SSIで管理するメニュー部分にその他の情報を管理する方法はないでしょうか? よろしくお願いします。

  • SSIでのエラーについて

    こんばんわ。 RedHat7.2で、Perlで、CGIの勉強をしはじめましたが、 SSIが どうもうまくいきません。 CGIならうまくいくのですが、HTMLからSSIでCGIを実行しようと するとうまくいきません。 Apacheで練習しているのですが、Apacheの設定が悪いのか、ほかに 重大なミスをしてるのかわかりません。 HTMLの中に #exec cgi を入れてみたんですが、 ブラウザにはその部分が [an error occurred while processing this directive] と表示されるだけなんです。 ごくごく簡単なカウンターなんですが。。。 SSIにおいて、これだけは必ずしなければだめ、というのが あれば教えていただきたいのですが。。。 よろしくお願いいたします。

  • SSIの実行

    アクセスカウンタ作成についての質問です。 あるプロバイダが提供している領域を使い、 public_htmlフォルダ直下に count.cgi、count.shtmlというファイルを置き、 count.shtmlからcount.cgiを呼び出して、 自前のアクセスカウンタを実行しようとしましたが、 アクセス数の部分が表示されず困っています。 ("カウント数は"の後が空白で何も表示されません。 エラー表示等はありません) チェック方法項目等ありましたらお教え頂けません でしょうか。 よろしくお願い致します。 ※public_htmlフォルダ及び、対象2ファイルには  それぞれ755のパーミッションを設定しています。 以下、html文です。 ------------------------------ <html> <head><title>アクセスカウンタ</title></head> <body> カウント数は <!--#exec cgi="./count.cgi"--> </body> </html> 以下、CGIプログラムです。 ------------------------------ #! /usr/local/bin/perl $filename = "count.txt"; if (!open ( FP, "$filename")) { $no = 0; } else { $no = <FP>; close(FP); } $no++; print "$no" if (!open ( FP, ">$filename")) { print "ファイル $filename がオープンできませんでした ($!)\n"; } else { print FP $no; close(FP); }

    • 締切済み
    • CGI
  • CGIのログをHTMLで表示

    CGIのログ(カウント)をHTMLにSSIで表示させようと思い下記のCGIを考えたのですがうまく表示されません。 皆様のお力をお貸し下さい! [log.dat] L内容 DataSu='***'; (***にはカウント数字が入っています) 上のカウントログをHTML表示させる為にCGIを作る [count.cgi] #!/usr/local/bin/perl #カウントログ読み込み open(IN,"ログまでの相対パス"); # カウンターを読み出す $count = <IN>; #ファイルを閉じる close(IN); #サイト数の表示。 print "Content-type: text/html\n\n"; print "$count"; 上記のCGIを表示させるとDataSu='***';とファイル内容が全て表示されてしまいます。 ***のカウント数だけ表示させるにはどうしたらいいのでしょうか?

    • 締切済み
    • CGI
  • SSI で引数をCGIに渡したいのですが、

    SSI で引数をCGIに渡したいのですが、 HTMLの記述を <h1>1行目<!--#exec cmd="./emoji.cgi 0"-->絵文字1行目分。</h1> <h1>2行目<!--#exec cmd="./emoji.cgi? 1"-->絵文字2行目分。</h1> <h1>3行目<!--#exec cmd="./emoji.cgi?2"-->絵文字3行目分。</h1> <h1>4行目<!--#include virtual="./emoji.cgi 3"-->絵文字4行目分。</h1> <h1>5行目<!--#include virtual="test.cgi? 4"-->絵文字5行目分。</h1> <h1>6行目<!--#include virtual="test.cgi?5"-->絵文字6行目分。</h1> として、CGI で $ARGV[0] で使いたいのですが、出力するとSSI部分に [an error occurred while processing this directive] と、ERROEが出力されて、上手く行きません。 ネットで調べてみるとApache バージョンのによってバグが有る様な内容も有りますし、 ASJホスティングサービスのページを見ると ------------------------------------------------------------------------------------------- コマンドライン引数を渡すSSI のご利用はいただけません。 こちらは、suExec ではなくApache の一般的なセキュリティ仕様となっております。 ------------------------------------------------------------------------------------------- と書いてあったりします。サーバーの設定の問題なのでしょうか? サーバーは PC DEPOT系のネットプラッツ、専用サーバー(2万2000円/月・結構無理して払っています)です。 中は、Apache バージョン 1.3.12 ・レッドハット6.2、と聞きました。 ネットプラッツの電話サーポートの方に訪ねたのですが、 「使えるか、使えないか、そこまでのサポートは出来ない」との事でした。 サポートの方はとても親切なのですが、肝心の事が「サポートできません」って事なので サーポートというよりカウンセリング状態で・・・問題が解決できません。 サーバーの設定方法 または 記述方法が有りましたら教えて頂けないでしょうか? 宜しくお願いします。

    • ベストアンサー
    • CGI
  • CGIスキンに外部txtを表示するには?

    お世話になります。 初歩的な質問だと思いますが、お付き合いくださるとありがたいです。 ・‥…━━━・‥…━━━ SSIやPHPで、複数ページに表示するメニューを 一個の外部ファイルにして、各ページから読み込む方法がありますよね。 <!--#include virtual="menu.txt"-->等 これは、CGIのスキンには使用出来ないでしょうか。 (例えば、apeboardやCLEVER等のスキンが使えるCGIを使用予定) 他のページと同じようにBBSやリンクCGI、 メールフォームなどのスキンも 同じファイルをメニュー部分として呼び出したいと思っています。 CGIフォルダに.htaccessで「AddType text/x-server-parsed-html .shtml .html .cgi」と書いても呼び出せませんでした。 (同じディレクトリのHTMLファイルは、呼び出せました) 何か方法があるのではないかと思い、書き込みさせて頂きます。 どうぞ宜しくお願いいたします。

    • ベストアンサー
    • CGI

専門家に質問してみよう