カレッヂ |
質問者 内田
投稿日 2003/12/12(金) 10:50:11
SSIのCGIでcookie情報を読み込み、 ID情報に従って、サーバーのデータベースに問い合わせて 対応する名前で、「いらっしゃいませ○○さん」と出したいと思っています。 単体では上記を実現できるCGIを作ったので <!--#include virtual="../cgi/login.cgi"--> という形で、shtmlに組み込んだのですが SSIではcookieを読めないと聞いたので shtml側で、Javascriptを使って、cookieを取得して、 <!--#include virtual="../cgi/login.cgi?id=cookie1:pw=cookie2"--> のような形で渡せないかと模索しています。 そこで、以下のようなJavaScript関数を見つけたのですが 値の渡し方がわからないので、質問させていただきたいと思います。 よろしくお願いします。 <SCRIPT LANGUAGE="JavaScript"> <!-- function GetCookie( strName ) { strCookie = document.cookie ; iStartIndex = strCookie.indexOf( strName + '=' ) ; if ( iStartIndex != -1 ){ strElement = strCookie.substr( iStartIndex ) ; iEndIndex = strElement.indexOf( ';' ) ; if ( iEndIndex != -1 ){ strElement = strElement.substr( 0, iEndIndex ) ; } iEqIndex = strElement.indexOf( '=' ) ; strCookie = unescape( strElement.substr( iEqIndex + 1 ) ) ; }else{ strCookie = '' ; } return strCookie ; } //--> </SCRIPT>
プロバイダ参照:レンタルオフィスのサーバーを使っています |
回答者 アルル
[削除]
投稿日 2003/12/12(金) 23:54:48
SSI の性質を考えた場合こういうことはできないと思います。 SSI はサーバ内部で実行されその結果、 <!--#include -->の部分を置き換えたものをブラウザに出力するので、 その時点で <!--# -->という文字列は無くなっているので、Javascriptの入り込む余地はない はずです。 はずしているかも知れませんが。。。 |
質問者 内田
[削除]
投稿日 2003/12/13(土) 00:07:57
なるほど!まったくですね。 何か別の方法を考えて見ます。 例では、「ようこそ○○さん」 と表示させたい、としていますが 本当にさせたいのは、 ある商品の紹介ページを、 shtmlでちゃっちゃとデザインして作って 商品価格表示だけSSI/CGIで作って、 会員かどうかと商品情報をサーバーデータベースに問い合わせて 変更する、ということをやりたかったのです。 できると便利な気がするんですが、難しそうですね。 現状では ・商品紹介ページ丸ごとCGIで作るか ・価格表示は別ページでCGIで作るか しか思いつきそうにありません。 何かよいお知恵をお持ちの方、ご意見お願いいたします。 |
回答者 アルル
[削除]
投稿日 2003/12/13(土) 00:21:49
SSI のようなものを使用したいのなら PHPが向いています。 <html> <body> <?php 色んな処理やHTMLの出力 ?> </html> のようにHTMLの中に処理を埋め込むことができます。 参考までに。 |
回答者 アルル
[削除]
投稿日 2003/12/13(土) 00:55:45
もう少し詳しくいうと クッキーの取得も <?php echo("<a href="../cgi/login.php?id=_SERVER["HTTP_COOKIE"]>リンク</a>") ?> のように簡単にできますし ページ内部でのDBアクセスも得意とするところです。 |
質問者 内田
[削除]
投稿日 2003/12/13(土) 01:09:25
なるほどー。 大変参考になりました。 phpについて勉強いたします。 明らかにスレ違いかと思いますが オススメのphp開発環境などありましたら お教え頂ければありがたいです。 |
質問者 内田
[削除]
投稿日 2003/12/13(土) 21:03:53
動きました!しかもshtmlのままで動きました。 ファイルの場所が悪かったみたいです。 phpでやってみて <? print($_COOKIE["sample"]); ?> とやったんですが、やっぱりだめだったので 試しにphpのファイルをcookieを発行したcgiファイルと 同じフォルダにphpファイルをおいたら動きました。 さらに、shtmlの方も、cookieを発行したcgiと同じフォルダに おいたら動いたのです。 でも、phpもデータベースとか画像処理とかプリンタ操作 までできて面白そうですね。 phpも勉強していきたいと思います。 |
質問者 内田
[削除]
投稿日 2003/12/13(土) 21:12:21
ごめんなさい。 補足していうと 「Javascriptからssiへデータを渡す」 のは、やっぱりできなくて http://homepage1.nifty.com/yito/namazu/gbook/20000923.1339.html に書いてあった 「ssiではcookieを処理できない」 という前提知識が間違っていて 「ssiでも、ディレクトリを注意すればcookieは使える」 というのが正しかったようです。 アルルさんありがとうございました。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |