セッションや共用SSLの問題を考えずに、普通にリンクを貼るのであれば、Zencartのデフォルトで設定されているURL(http://domain_name.com/index.php?main_page=contact_us など)をそのままテンプレート内に張り付けることで動作しますが、この方法でリンクを貼るとクッキーの使えないブラウザで正常にセッションが動作しなくなります。Zencartのセッションについてはこちらの記事で触れています。

セッションを維持するリンクの貼り方は状況によっていくつか考えられるので、順に説明していきたいと思います。

1.Zencart(filenames.php)にもともと定義されているページへのリンクの貼り方

■形式 非SSLの場合 :
 
<a href="<?php echo zen_href_link(FILENAME_CONTACT_US, '', 'NONSSL'); ?>">お問い合わせ</a>
SSLの場合 :
<a href="<?php echo zen_href_link(FILENAME_LOGIN, '', 'SSL'); ?>">ログイン</a>
この場合は、「FILENAME~」となっている箇所を includes/filenames.php に定義されている名前と同じものを設定することになります。 SSLにするかどうかの設定は「SSL」または、「NONSSL」を記述します。

2.Zencart(filenames.php)にもともと定義されていないページへのリンクの貼り方

例えば、「http://domain_name.com/index.php?main_page=index&cPath=14」にリンクを張りたい場合などです。 ■形式
<a href="<?php echo zen_href_link("index&cPath=14", '', 'NONSSL'); ?>">ページ名</a>
この場合は、「index&cPath=14」となっている箇所を編集します。 URLで 「index.php?main_page=」 以降の箇所を赤字の箇所に指定することで動作します。 SSLにするかどうかの設定は「SSL」または、「NONSSL」を記述します。

3.オリジナルのphpプログラムの中で動かすような場合

例として、カテゴリIDを取得し、自動でカテゴリ名へリンクを設置するようなプログラムを作るとします。そのリンク箇所にセッションが正常に引き継げるように設定します。 ■形式
<a href="http://domain_name/index.php?main_page=index&cPath=<?php echo  $categories_id ; ?>&<?php echo zen_session_name(); ?>=<?php echo zen_session_id() ; ?>">リンク</a>
Zencart内で、zen_session_nameというのは「zenid」のことです。zen_session_idというのはzenidの値のことです。 このやり方については、クッキーの設定に関わらず、URL内のzenidにてセッションを引き継ぐ方法ですが、セキュリティ面を考慮すると、もう少しスマートなやり方があるかもしれません。

4.Zencartのサイト内に静的htmlのページがある場合

■形式 <a href=”http://domain_name/sitemap.html?<?php echo zen_session_name() . ‘=’ . zen_session_id() ?>”>サイトマップ</a> これについては、静的htmlを介して、セッションを引き継ぐために無理やり動作させているという感じです。 静的htmlからZencartページに戻った場合なども、セッションを引き継ぐ必要があるので、静的htmlページ内のリンクも全て記述を修正する必要が出てくると思います。 また、サーバ環境によっては、htmlファイルでphpを動作させるために「.htaccess」ファイルによる設定も必要になるかもしれません。

この投稿へのコメント

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます。
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CAPTCHA


ピックアップ記事

tabBar内にABPeoplePickerNavigationControllerを表示させる

2011年01月17日 過去Blog
もともと入っている電話アプリなんかは、タブバーを選択すると連絡先が表示されるようになっていますが、それを実装するために、いろいろ試行錯誤してみましたが、以下のようにすることで、実装出来ました。 この件に関しては、あまり、情報がなかった(モーダルビューにpickerを表示させる例は多々ありましたが・・・)ので、スマートな方法かどうかは不明ですので、もし、もっとスマートな方法をご存知の方がいらっしゃいましたら、是非コメントください。…
「tabBar内にABPeoplePickerNavigationControllerを表示させる」をはてなブックマークに追加

Macで顔文字を使う

2011年02月28日 過去Blog
windowsでは使う事も多かった顔文字もmacでは、特に使わないままで、やってきましたが、最近macでメールする事も増えてきて、顔文字を使いたいと思うようになったので、その設定のメモです。 1.顔文字辞書ダウンロード まず、顔文字辞書をダウンロードします。 今回は、こちらとこちらを利用させてもらいました。 2.ことえりに登録する ダウンロードしたファイルを解凍します。 その中から、必要な辞書…
「Macで顔文字を使う」をはてなブックマークに追加

データベースに機種依存文字の入ったCSVデータをインポート

2010年05月19日 過去Blog
phpMyAdminにて、データベース側にインポートする際、エンコードの設定を「cp932」に設定することで、機種依存文字を文字化けせずにインポートすることが可能になります。 *今回は、機種依存文字を含むsjisのCSVをutf8のデータベースにインポートしました。 参考サイト:http://smiu2it.blog.so-net.ne.jp/2009-04-16
「データベースに機種依存文字の入ったCSVデータをインポート」をはてなブックマークに追加

[7.5] iPhoneアプリに背景画像を設置する

2010年12月06日 過去Blog
iPhoneアプリの背景に独自の画像をいれたい場合の説明です。デフォルトのままでも特に気にならない方も多いかもしれませんが、少し味気ないので、背景を設定してみましょう。 …
「[7.5] iPhoneアプリに背景画像を設置する」をはてなブックマークに追加

/etc/hosts ファイルの変更を反映させる

2009年12月05日 過去Blog
hostsファイルの設定を変えた場合は、 # /etc/rc.d/init.d/network resatart または、 # /etc/rc.d/init.d/network reload で反映させる。
「/etc/hosts ファイルの変更を反映させる」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy