[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 メーリングリストの案内