<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>web tips around me &#187; カスタマイズ</title>
	<atom:link href="http://yamazon.org/tag/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%9e%e3%82%a4%e3%82%ba/feed" rel="self" type="application/rss+xml" />
	<link>http://yamazon.org</link>
	<description>iphoneアプリ開発,ホームページ制作,SEO,CMS ...</description>
	<lastBuildDate>Wed, 25 May 2011 07:58:48 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Zencat : 共用SSLを利用する場合のセッション管理</title>
		<link>http://yamazon.org/zencart/76</link>
		<comments>http://yamazon.org/zencart/76#comments</comments>
		<pubDate>Fri, 20 Nov 2009 09:08:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Zencart]]></category>
		<category><![CDATA[カスタマイズ]]></category>
		<category><![CDATA[セッション]]></category>
		<category><![CDATA[共用SSL]]></category>

		<guid isPermaLink="false">http://yamazon.org/?p=76</guid>
		<description><![CDATA[Zencat のセッション管理については、「Zencart : セッションについて」で触れていますので、基本的な説明はそちらでご確認ください。 共用SSLを利用する場合のセッション管理についてですが、共用SSLを利用する場合は、基本的に自分の運用するドメインとSSLページは違うドメイン（サーバ会社のドメインなど）になることが多いと思います。 その場合は、ブラウザのクッキーに保存されているSSLページと非SSLページでのドメインが違うことになるので、セッションが正常に引き継げなくなり、カートが空になるなどの現象が起こります。 Zencartのインストール直後の設定は、管理画面内の「セッション管理の設定」＞「クッキーの使用の設定」がTrueになっていたと思います。 この環境では、ブラウザのクッキーの使用が必須となってしまうので、共用SSLでクッキーに保存されたドメインが異なる場合は、当然、セッションが引き継げなくなりますし、もちろんブラウザがクッキーの使用を許可していない場合もセッションは引き継げません。 共用SSLでクッキー内のドメインが違う場合でもセッションを引き継ぐ方法として、管理画面内の「クッキーの使用」をFalseにすることでZencartが共用SSLの環境で使えるようになります。また、これは、クッキーを一切使用しないというのではなく、クッキーが使用できる場合は利用し、そうでない場合はURLにzenidとしてセッション情報を付与し、セッションを引き継がせることが出来るようになります。 管理画面の説明を見るだけでは、少し勘違いしやすい点ですが、 「クッキーの使用」＝True　＞　ブラウザのクッキーの使用が必須。 「クッキーの使用」＝False　＞　ブラウザのクッキーは必須ではなく、利用できるときは使い、そうでない場合はURLにzenidを付与しセッション管理を継続する。 といった感じだと思います。 その際の問題点として、クッキーが正常に利用できない場合はzenidが正常に付与される必要があるので、独自のカスタマイズでリンクURLを貼りつけた箇所などは、zenidが引き継げるようにZencartの仕様にそったリンクの貼り方をする必要があります。Zencartに内でのリンクの貼り方については、「zencart:カスタマイズ リンクの貼り方」の記事を参考にしてください。 また、インストール時に「サイト、管理画面共にSSLを使用する設定」でインストールしてしまい、管理画面が共用SSLで動作しない場合は、admin/includes内のconfig.phpファイルの設定を手動でSSLを使用しない設定にし、非SSLで管理画面にログイン後、「セッション管理の設定」＞「クッキーの使用」をFalseにする必要があります。]]></description>
			<content:encoded><![CDATA[<p>Zencat のセッション管理については、「<a title="Zencart : セッションについて" href="http://yamazon.org/zencart/72" target="_self">Zencart : セッションについて</a>」で触れていますので、基本的な説明はそちらでご確認ください。</p>
<p>共用SSLを利用する場合のセッション管理についてですが、共用SSLを利用する場合は、基本的に自分の運用するドメインとSSLページは違うドメイン（サーバ会社のドメインなど）になることが多いと思います。</p>
<p>その場合は、ブラウザのクッキーに保存されているSSLページと非SSLページでのドメインが違うことになるので、セッションが正常に引き継げなくなり、カートが空になるなどの現象が起こります。</p>
<p><span id="more-76"></span>Zencartのインストール直後の設定は、管理画面内の「セッション管理の設定」＞「クッキーの使用の設定」がTrueになっていたと思います。</p>
<p>この環境では、ブラウザのクッキーの使用が必須となってしまうので、共用SSLでクッキーに保存されたドメインが異なる場合は、当然、セッションが引き継げなくなりますし、もちろんブラウザがクッキーの使用を許可していない場合もセッションは引き継げません。</p>
<p>共用SSLでクッキー内のドメインが違う場合でもセッションを引き継ぐ方法として、管理画面内の「クッキーの使用」をFalseにすることでZencartが共用SSLの環境で使えるようになります。また、これは、クッキーを一切使用しないというのではなく、クッキーが使用できる場合は利用し、そうでない場合はURLにzenidとしてセッション情報を付与し、セッションを引き継がせることが出来るようになります。</p>
<p>管理画面の説明を見るだけでは、少し勘違いしやすい点ですが、</p>
<ul>
<li>「クッキーの使用」＝True　＞　ブラウザのクッキーの使用が必須。</li>
<li>「クッキーの使用」＝False　＞　ブラウザのクッキーは必須ではなく、利用できるときは使い、そうでない場合はURLにzenidを付与しセッション管理を継続する。</li>
</ul>
<p>といった感じだと思います。</p>
<p>その際の問題点として、クッキーが正常に利用できない場合はzenidが正常に付与される必要があるので、独自のカスタマイズでリンクURLを貼りつけた箇所などは、zenidが引き継げるようにZencartの仕様にそったリンクの貼り方をする必要があります。<a title="zencart:カスタマイズ リンクの貼り方" href="http://yamazon.org/zencart/6" target="_self">Zencartに内でのリンクの貼り方については、「</a><a title="zencart:カスタマイズ リンクの貼り方" href="http://yamazon.org/zencart/6" target="_self">zencart:カスタマイズ リンクの貼り方」の記事を参考にしてください</a>。</p>
<p>また、インストール時に「サイト、管理画面共にSSLを使用する設定」でインストールしてしまい、管理画面が共用SSLで動作しない場合は、admin/includes内のconfig.phpファイルの設定を手動でSSLを使用しない設定にし、非SSLで管理画面にログイン後、「セッション管理の設定」＞「クッキーの使用」をFalseにする必要があります。</p>
]]></content:encoded>
			<wfw:commentRss>http://yamazon.org/zencart/76/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>zencart:カスタマイズ リンクの貼り方</title>
		<link>http://yamazon.org/zencart/6</link>
		<comments>http://yamazon.org/zencart/6#comments</comments>
		<pubDate>Wed, 18 Nov 2009 08:28:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Zencart]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[カスタマイズ]]></category>
		<category><![CDATA[セッション]]></category>
		<category><![CDATA[共用SSL]]></category>

		<guid isPermaLink="false">http://yamazon.org/?p=6</guid>
		<description><![CDATA[セッションや共用SSLの問題を考えずに、普通にリンクを貼るのであれば、Zencartのデフォルトで設定されているURL（http://domain_name.com/index.php?main_page=contact_us など）をそのままテンプレート内に張り付けることで動作しますが、この方法でリンクを貼るとクッキーの使えないブラウザで正常にセッションが動作しなくなります。Zencartのセッションについてはこちらの記事で触れています。 セッションを維持するリンクの貼り方は状況によっていくつか考えられるので、順に説明していきたいと思います。 1.Zencart(filenames.php)にもともと定義されているページへのリンクの貼り方 ■形式 非SSLの場合 : &#60;a href=&#8221;&#60;?php echo zen_href_link(FILENAME_CONTACT_US, &#8221;, &#8216;NONSSL&#8216;); ?&#62;&#8221;&#62;お問い合わせ&#60;/a&#62; SSLの場合 : &#60;a href=&#8221;&#60;?php echo zen_href_link(FILENAME_LOGIN, &#8221;, &#8216;SSL&#8216;); ?&#62;&#8221;&#62;ログイン&#60;/a&#62; この場合は、「FILENAME～」となっている箇所を includes/filenames.php に定義されている名前と同じものを設定することになります。 SSLにするかどうかの設定は「SSL」または、「NONSSL」を記述します。 2.Zencart(filenames.php)にもともと定義されていないページへのリンクの貼り方 例えば、「http://domain_name.com/index.php?main_page=index&#38;cPath=14」にリンクを張りたい場合などです。 ■形式 &#60;a href=&#8221;&#60;?php echo zen_href_link(&#8220;index&#38;cPath=14&#8220;, &#8221;, &#8216;NONSSL&#8217;); ?&#62;&#8221;&#62;ページ名&#60;/a&#62; この場合は、「index&#38;cPath=14」となっている箇所を編集します。 URLで 「index.php?main_page=」 以降の箇所を赤字の箇所に指定することで動作します。 SSLにするかどうかの設定は「SSL」または、「NONSSL」を記述します。 3.オリジナルのphpプログラムの中で動かすような場合 例として、カテゴリIDを取得し、自動でカテゴリ名へリンクを設置するようなプログラムを作るとします。そのリンク箇所にセッションが正常に引き継げるように設定します。 ■形式 &#60;a href=\&#8221;http://domain_name/index.php?main_page=index&#38;cPath=&#8221;.$categories_id.&#8221;&#38;&#8221;.zen_session_name() . &#8216;=&#8217; . zen_session_id().&#8220;\&#8221;&#62;&#8221;.$res3['categories_name'].&#8221;&#60;/a&#62; Zencart内で、zen_session_nameというのは「zenid」のことです。zen_session_idというのはzenidの値のことです。 このやり方については、クッキーの設定に関わらず、URL内のzenidにてセッションを引き継ぐ方法ですが、セキュリティ面を考慮すると、もう少しスマートなやり方があるかもしれません。 4.Zencartのサイト内に静的ｈｔｍｌのページがある場合 ■形式 [...]]]></description>
			<content:encoded><![CDATA[<p>セッションや共用SSLの問題を考えずに、普通にリンクを貼るのであれば、Zencartのデフォルトで設定されているURL（http://domain_name.com/index.php?main_page=contact_us など）をそのままテンプレート内に張り付けることで動作しますが、この方法でリンクを貼るとクッキーの使えないブラウザで正常にセッションが動作しなくなります。<a title="Zencart : セッションについて" href="http://yamazon.org/zencart/72" target="_self">Zencartのセッションについてはこちらの記事で触れています。</a></p>
<p>セッションを維持するリンクの貼り方は状況によっていくつか考えられるので、順に説明していきたいと思います。<br />
<span id="more-6"></span></p>
<h3>1.Zencart(<strong>filenames.php</strong>)にもともと定義されているページへのリンクの貼り方</h3>
<p><span style="color: #ff0000;">■形式</span></p>
<p>非SSLの場合 : &lt;a href=&#8221;&lt;?php echo zen_href_link(<span style="color: #ff0000;">FILENAME_CONTACT_US,</span> &#8221;, &#8216;<span style="color: #ff0000;">NONSSL</span>&#8216;); ?&gt;&#8221;&gt;お問い合わせ&lt;/a&gt;</p>
<p>SSLの場合 : &lt;a href=&#8221;&lt;?php echo zen_href_link(<span style="color: #ff0000;">FILENAME_LOGIN</span>, &#8221;, &#8216;<span style="color: #ff0000;">SSL</span>&#8216;); ?&gt;&#8221;&gt;ログイン&lt;/a&gt;</p>
<p>この場合は、「FILENAME～」となっている箇所を<strong> includes/filenames.php</strong> に定義されている名前と同じものを設定することになります。</p>
<p>SSLにするかどうかの設定は「SSL」または、「NONSSL」を記述します。</p>
<h3>2.Zencart(<strong>filenames.php</strong>)にもともと定義されていないページへのリンクの貼り方</h3>
<p>例えば、「http://domain_name.com/index.php?main_page=index&amp;cPath=14」にリンクを張りたい場合などです。</p>
<p><span style="color: #ff0000;">■形式</span></p>
<p>&lt;a href=&#8221;&lt;?php echo zen_href_link(&#8220;<span style="color: #ff0000;">index&amp;cPath=14</span>&#8220;, &#8221;, &#8216;NONSSL&#8217;); ?&gt;&#8221;&gt;ページ名&lt;/a&gt;</p>
<p>この場合は、「index&amp;cPath=14」となっている箇所を編集します。</p>
<p>URLで<strong> 「index.php?main_page=」 </strong>以降の箇所を赤字の箇所に指定することで動作します。</p>
<p>SSLにするかどうかの設定は「SSL」または、「NONSSL」を記述します。</p>
<h3>3.オリジナルのphpプログラムの中で動かすような場合</h3>
<p>例として、カテゴリIDを取得し、自動でカテゴリ名へリンクを設置するようなプログラムを作るとします。そのリンク箇所にセッションが正常に引き継げるように設定します。</p>
<p><span style="color: #ff0000;">■形式</span></p>
<p><span style="color: #ff0000;"> </span>&lt;a href=\&#8221;http://domain_name/index.php?main_page=index&amp;cPath=&#8221;.$categories_id<span style="color: #ff0000;">.&#8221;&amp;&#8221;.zen_session_name() . &#8216;=&#8217; . zen_session_id().</span>&#8220;\&#8221;&gt;&#8221;.$res3['categories_name'].&#8221;&lt;/a&gt;</p>
<p>Zencart内で、zen_session_nameというのは「zenid」のことです。zen_session_idというのはzenidの値のことです。</p>
<p>このやり方については、クッキーの設定に関わらず、URL内のzenidにてセッションを引き継ぐ方法ですが、セキュリティ面を考慮すると、もう少しスマートなやり方があるかもしれません。</p>
<h3>4.Zencartのサイト内に静的ｈｔｍｌのページがある場合</h3>
<p><span style="color: #ff0000;">■形式</span></p>
<p>&lt;a href=&#8221;http://domain_name/sitemap.html?&lt;?php echo zen_session_name() . &#8216;=&#8217; . zen_session_id() ?&gt;&#8221;&gt;サイトマップ&lt;/a&gt;</p>
<p>これについては、静的ｈｔｍｌを介して、セッションを引き継ぐために無理やり動作させているという感じです。</p>
<p>静的ｈｔｍｌからZencartページに戻った場合なども、セッションを引き継ぐ必要があるので、静的ｈｔｍｌページ内のリンクも全て記述を修正する必要が出てくると思います。</p>
<p>また、サーバ環境によっては、<a title="htmlファイルでphpを動かすための.htaccessファイルの設定" href="http://yamazon.org/tech/87">htmlファイルでphpを動作させる</a>ために「.htaccess」ファイルによる設定も必要になるかもしれません。</p>
]]></content:encoded>
			<wfw:commentRss>http://yamazon.org/zencart/6/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

