[PHP-users 28353] Re: (解決?) Re: CLI 版 PHP でセッション ID がうまく取得できない

aya810921@yahoo.co.jp aya810921 @ yahoo.co.jp
2006年 2月 8日 (水) 12:33:44 JST


菅原様、上鍵様、ありがとうございます。

> session.use_only_cookies = On の間違いです。
> いかがでしょうか?
> ※「クライアントがCookieを使用出来る」という前提ですが
・・・

上記設定を試してみましたが、動作に変化ありませんでした。

> そもそも CLI で Cookie が正しく取得できているか確認し
ましたか?

ご指摘のとおり、Cookie取得の箇所がおかしいのかなと考え、
$_SERVER["HTTP_COOKIE"]を解析し、session_id()で
セッションIDを直接指定させることで、なんとか
望みどおりの動作させることができました。

-------------------------------
#!/usr/local/bin/php
<?php

$session_name ="PHPSESSID";
ini_set("session.name", $session_name);
if(isset($_SERVER["HTTP_COOKIE"]) &&
  $_SERVER["HTTP_COOKIE"] != '')
{
  $cookies = explode("; ", $_SERVER["HTTP_COOKIE"]);
  foreach($cookies as $value)
  {
    $cookie = explode("=", $value);
    if ($cookie[0] == $session_name && $cookie[1] != "")
    {
      session_id($cookie[1]);
      break;
    }
  }
}
session_start($session_name);

print "Set-Cookie: ".SID."; path=/\n";
print "Content-Type: text/html\n";
print "\n";

echo SID."<br>";
echo '<a href="index.cgi">reload</a><br>';

?>
-------------------------------

apacheモジュール版だと、session_start()を
呼び出した時点で自動的にセッションIDを紐付けしてくれてい
たのに、
CLI版ではそれをやってくれていないようです。

一応動作させることはできましたが、
CLI版PHPには不慣れなため、根本的に勘違いしている
ところがあったら教えていただけるとうれしいです。


--------------------------------------
GANBARE! NIPPON!
Yahoo! JAPAN JOC OFFICIAL INTERNET PORTAL SITE PARTNER
http://pr.mail.yahoo.co.jp/ganbare-nippon/


PHP-users メーリングリストの案内