• 締切済み

「最近チェックした商品」CGI

インターネットショッピングサイトを作成運営しているWEBデザイナー(3年目)です。 タイトルのとおり、Amazonや楽天などに商品ページを閲覧すると左メニューに表示される「最新チェックした商品」欄を設けたいと思っています。 HTMLと簡単なJavaScriptは経験がありますが、CGIは初心者です。 CGIでできているものなのかもよくわかりません…。 サーバーにはCGIプログラムとSSIスクリプトが設置できます。 ・クッキーを受け渡す程度のものなのか。 ・もっと大規模な仕組みで簡単には実現できないものなのか。 ・参考にできるサイト を教えていただけませんか? どれか一つだけでもOKです! よろしくお願いします。

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

みんなの回答

  • taseki
  • ベストアンサー率66% (155/233)
回答No.2

ちょっと説明が不足していましたので、補足します。 ANo.1にも書きましたが、あくまでも、cookieなどを使うのは閲覧者が誰か特定するためです。 おっしゃるような方法、cookieに履歴データを保存しておいてそこから読み出せば、クライアント側で実現できる、という発想も悪いというわけではないですが、cookieに保存できるデータ量の限界や、そもそも使えない環境もあります。 そこで、サーバーサイドプログラムとして、サーバーのデータベースに履歴データを保存します。 なので、 > 1.閲覧者のページ履歴をcookieにする。 > 2.そのcookieをもとに商品ページとURLのデータベースを検索する。 > 3.結果を欄に表示する。 は、以下のようになります。 1.閲覧者を特定する(ユーザーIDを得る)。 2.そのユーザーIDをもとに、DBの「閲覧履歴テーブル」から抽出。 3.抽出結果を表示。 1の「閲覧者を特定する」方法として、cookieやセッションや、いわゆるチケット(たしかAmazonもこれだったと思いますが未確認)などがあります。 現在ショッピングサイトを運営されているとのことですが、そのシステムにもユーザーを特定する機能があるのではないでしょうか。もしあれば、たとえば購入者が誰なのか当然わかるようになっていますよね?それを、商品閲覧のときにも同じようにチェックしておいて、記録します。 閲覧履歴テーブル ======================= ユーザーID 商品ID -----------------------  USER_002 ITEM_001  USER_001 ITEM_002  USER_002 ITEM_005  USER_001 ITEM_001  USER_001 ITEM_004  USER_003 ITEM_002  USER_008 ITEM_001 ======================= のような感じに。 で、ページを表示する際に、何らかの方法(たとえばcookie)で「閲覧者が誰なのか?」だけわかれば、あとは上記テーブルから必要データを抽出して表示します。

numnam
質問者

お礼

tasekiさん、さらに詳しいご回答ありがとうございます! cookieを勘違いしておりました…。 >そのシステムにもユーザーを特定する機能があるのではないでしょうか。 そうですよね、気が付きませんでした。 ネットショップの決済はサーバー側で提供しているものでメンテナンス画面でしか触っていなかったのですが、ファイルを探して読んでみます。

  • taseki
  • ベストアンサー率66% (155/233)
回答No.1

CGIなのかmodなのかASPなのか、などは別として、いずれにしてもサーバーサイドプログラムです。 cookieまたはセッションIDを使って、閲覧者が誰か特定し(ユーザーIDなど)、それをもとにサーバーに構築されているデータベースから情報を引き出して、表示します。 > もっと大規模な仕組みで簡単には実現できないものなのか ちょっと意味が解りませんが、大規模な仕組みにしなくても、そもそも実現していること自体が、上記のような簡単な仕組みです。 初心者と言うことでしたら、まずはcookie、データベースについて、検索したり勉強されることをおすすめします。

numnam
質問者

お礼

やはりサーバーサイドプログラムなんですね。 データベースを構築して紐付けするということでしょうか。商品数は50にも満たないのでデーターベースを構築するのはそれほど大変ではなさそうです。 1.閲覧者のページ履歴をcookieにする。 2.そのcookieをもとに商品ページとURLのデータベースを検索する。 3.結果を欄に表示する。 という流れでしょうか。 > もっと大規模な仕組みで簡単には実現できないものなのか 曖昧な言葉ですみませんでした。 個人では実現できないものなのか、という意味でした。 tasekiさん、ご回答ありがとうございました!

関連するQ&A

  • CGIの出力に別のCGIの出力結果も同時に表示させたい

    ショッピングカートのCGIに、アンケートCGIの集計結果も一緒に表示させたいと思います。 ショッピングカートで、まず商品を検索。 検索結果の商品ごとに、ユーザーに付けてもらったアンケート結果も一緒に表示させて、商品の評価も見て分かるようにしたいです。 SSIの利用を考えていたのですが、CGIの中でSSIを使用してもコメント扱いになり、SSIを動作させる事ができないと言う事が分かり、今回質問しました。 アンケートCGIは下記のスクリプトになります。 http://wa-ka.net/mash/sozai/tenshin/index.html 上記のサイトのアンケートCGIを利用しています。 アンケートの集計結果を、ショッピングカートCGIの検索結果に表示したいのですが、どのようにしたら良いのかアドバイスをお願い致します。 「tenshin.cgi?mode=reportfile」とすると、アンケート結果が表示されるようになっています。 ショッピングカートの検索結果の出力部分は、 $print .=<<HTML; HTML の間に記述されているHTMLの情報が、出力結果として表示されるようになっています。 この中に「$item」「$price」「$comment」等の変数(?)が入っており、商品毎の情報が表示されます。 上手く説明できているか分かりませんが、CGIの出力に別のCGIの出力結果も一緒に表示させる方法はありますでしょうか。 アドバイスをお願い致します。

    • ベストアンサー
    • Perl
  • HTML上(javascript)からCGIを実行する方法

    javascriptから外部実行ファイル(javascriptファイルではなくperlなどのCGI) を実行する方法を探しています。 下記のようにindex.htmとtest.cgiファイルを用意して、index.htm内の javascriptから外部cgiを実行させ、cgiの結果(test.cgiでは単に 『test』と表示するのみ)を表示したいと考えています。 利用増ですが、cgiやssiが使用できないサーバにindex.htmを置いて、 cgiが使用できるサーバ上のcgi結果を取得したいものです。 通常のcgiのように、1ページでcgi結果を表示するものではなく、 HTMLファイルの一部にcgi処理結果を表示させたいものです。 そもそも、SSIを使用しなければ下記のようなHTML内にcgiなどの 実行結果を表示する事は出来ないのでしょうか。 よろしくお願い致します。 ※下例のプログラムではcgi結果は表示されませんでした・・・。 ---<index.htm>---------------------------------------- <HTML> <BODY> <SCRIPT language="Javascript" src="http://xxx.xxx.xxx.xxx/test.cgi"></SCRIPT> </BODY> </HTML> ---<test.cgi>---------------------------------------- #!/usr/bin/perl print "test"

  • CGIのプログラム設置でSSIを使わずに、JavaScriptで直接CGIを呼び出す

    SSIが使えないサーバーで、JavaScriptを使って、直接CGIを呼び出して、表示させるCGIの設置をしています。 CGIスクリプト配布先では、表示した箇所に下記タグを記載するようにと説明があります。 ----------------------------------------------- <html> <body> <script language="JavaScript" src="○○.cgi" > </script> </body> </html> ----------------------------------------------- 真っ白いままで表示されなく困っています。 ちなみに直接CGIにアクセスすると、崩れた表示で表示されますので、CGI設置は問題ないはずです。 (CGIのパーミッション755にしてあります) 質問がいくつかあるのですが・・・ ホームページ作成ソフトで作っていますので、<head>~</head>内に下記メタタグが自動挿入されていますが、何か関係があるのでしょうか? <meta http-equiv="content-script-type" content="text/javascript" /> language属性は HTML4.01に採用されなかったため、HTML4.01 に従う場合は language 属性ではなく、type属性を使用するという記載を検索で見つけましたが、type属性に変更すればよいのでしょうか? type属性に変更のタグはどうように記載すればよいでしょうか? JavaScriptはあまり詳しくないので、とんちんかんな質問だったらすみません。 どうぞよろしくお願いします。 ----------------------------------- 配布先CGI:http://www.nmt.ne.jp/~mamiko/scripts/index.html

  • カウンタCGIについて

    今、カウンタを自作しています。 カウンタの種類はテキストカウンタです。 ですがカウンタを設置しているページからその他のページへ移動し、ブラウザの「戻る」ボタンで戻ってきたときにカウントがされないんです。 カウンタをテキストで表示したい、SSIを使いたくないと言う理由でHTMLページではJavaScriptを用いてCGIの内容を取得するようにしています。 どうしたら解決できるでしょうか?よろしくお願いします。 <index.htm> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>カウンタ</title> </head> <body> <p> <SCRIPT language="JavaScript" src="count.cgi"></SCRIPT> <noscript>JavaScriptをONにしないとカウンタは動きません。</noscript> </p> <p> <a href="http://www.yahoo.co.jp/">Yahoo!Japan</a> </p> </body> </html>

    • ベストアンサー
    • CGI
  • 商品レビュー機能を付けたい

    運営中のショッピングサイトに楽天やAmazonのような商品レビュー機能を付けたいのですが、下記のような方法は実現可能でしょうか。出来ましたら方法を教えてください。 1.ページ内に掲示板を表示させる方法 2.ページ内にブログを表示させる方法

  • 複数の商品を一括でカゴへ

    下記の http://www.rescue.ne.jp/ ショッピングバスケットシステム version 1.11を使用しています。CGIは設置とhtml部分の変更くらいしかできません。 今は1個ずつカゴに入れるしくみですが、まとめてチェックした商品をカゴに入れるように改造するのは大変でしょうか。 #このサイトのこのスクリプトを参考にやれば簡単だよ、などという便りをお待ちします・・。

    • ベストアンサー
    • Perl
  • 他のメールCGIへの商品タイトルの引継ぎ方

    ショッピングカートを構築中で、商品個別のページより「この商品について質問する」というリンクをはり、 http://www.●●●●.●●●/contact.cgi?datanum=データ番号3:商品 というリンクを貼った場合に、よく一般的にフリーで配布されているHTMLフォームかららメール送信できるCGIを使って、タイトル欄に引継ぎたいのですが、この場合、どのようにタイトルを引き継ぎすればよいのでしょうか?(できないのないのかも?)ちなみに ショッピングカートはWEB寺小屋さんのを使わせてもらってます。 なお、この対応できそうなフリーのメールCGIがあれば、お教え下さい。

  • RSSをHTMLに貼り付けるCGI

    RSSで取得したトピックをHTMLに貼り付けるのに、現在 「大黒屋本舗」さんのjsRSSを使っています。インラインフレームを 使うのは嫌なので、このCGIを選択したのですがが、これはJavaScript で貼り付ける仕様なんですが、HTMLの読み込みが遅くなります。 インラインフレームを使わず、HTMLにRSSを貼り付けることが可能な CGI、またはPHPのフリースクリプトは無いでしょうか? ■大黒屋本舗 http://www.daikoku-ya.org/

    • 締切済み
    • CGI
  • JavaScriptからCGIを読み出す方法

    お世話になっています。 今回、JavaScriptからCGIで読み出した文章を出力する方法についての質問があり、 投稿させて頂きました。 まず、CGIで、例えばa.logというファイルを読み出し、ブラウザに出力する処理を書きます。 a.logファイルは全て文字列です。 次にHTML側で、適当にaタグでリンクを張ります。 このリンクをクリックすると、そのCGIが読み出した文章を特定の場所に出力する、 という処理をしたいのですが、うまく出来ません。 探していると、インラインフレームを使えばいいとよく見かけるのですが、 その方法は取りたくないのです。(サイトのデザインの関係上) 試したソースは、JavaScriptでファンクションの定義をし、 実行されれば以下のようなソースを出力する、というものでした。 <script language="JavaScript" src="read.cgi"></script> 自分でも無理があるな、とは思ってますが、これ意外思いつかなかったもので・・・ 皆様のお知恵をお貸しください。 お願いします。

  • CGIにSSIカウンタをつけたい

    掲示板や日記帳などのCGIに、別途ダウンロードしたSSIのテキストカウンタを表示させようとしたところ、ローカル・Web共に表示されませんでした。 表示する為の記述は「<!--#include virtual="仮想パス"-->」で、HTMLファイルに記述した場合は問題なく表示・動作しました。 HTMLファイルで表示・動作しましたし、CGI・SSI・「.htaccess」ファイルなどの設定はおそらく問題ありません。 SSIのテキストカウンタは「The Room」というサイトの「Text Day Counter Ver.1.10 SSI版」を使用しています。 CGIは「掲示板や日記帳など」と言いましたが、まだ検討段階で特定のCGIはなく、色々なCGIで試しています。 ※特定のものだけではなく、テキストカウンタを表示したいと思うCGIにつけたいのです。 CGIの記述は (1) print "<!--#include virtual=\"仮想パス\"-->\n" ; (2) print '<!--#include virtual="仮想パス"-->\n' ; (3) print "<!--#include virtual='仮想パス'-->\n" ; (4) print <<"EOM"; <!--#include virtual="仮想パス"--> EOM と4通り試しましたが、どれも動作しませんでした。 SSIのテキストカウンタのパスが「http://xxx.yyy.zzz/aaa/bbb/ccc/txtdayc1.cgi」だとしたら、仮想パスは「/aaa/bbb/ccc/txtdayc1.cgi」のようなので、そう記述しましたが動作しませんでした。 CGIと同じディレクトリに置いているので、記述を「<!--#include virtual="./txtdayc1.cgi"-->」に変えたところ、HTMLファイルでは動作しました。 なぜSSIのテキストカウンタがCGIで表示されないのか、アドバイスをお願いできないでしょうか? また、「<!--#include virtual="仮想パス"-->」を「<!--#include virtual="CGIファイル名"-->」または「<!--#include virtual="フルパス"-->」のように記述しても問題ないのかも教えて頂けると助かります。 宜しくお願い致します。

    • ベストアンサー
    • CGI

専門家に質問してみよう