PHPでは、アンカータグでリンクを設定するとセッションが有効の場合、セッション ID がURLに自動的に付加されるという便利な機能がある。
[php]
<a href="test.php">test</a>
↓↓↓
<a href="test.php?PHPSESSID=7a0684b53048574fa8609053b8b64065">test</a>
[/php]
必要があってosCommerceでこの機能を確認したところ、なぜか、まったくその機能が動作しない。当然、session.use_trans_sidはOn(透過的なセッション ID の伝播を有効)にしたがまったく動作しない。クッキーが有効だと表示されないことがあるのでブラウザの設定を変更してみたりした。
簡単なプログラムをつくって
<?php
session_start();
<a href=”test.php”>test</a>
?>
ためしてみると、同じ環境なのにきちんとセッションIDが付加された。osCommerce側で余計なことをしているのではと思い、
/includes/application_top.phpにこの機能をオフにするに設定を見つけた。
if (function_exists(‘ini_set’)) @ini_set(‘session.use_trans_sid’, 0);
この機能を動作しないようにすると、正常にセッションIDが付加されるようになった。これは携帯サイトを作るときなどには必要になると思う。