[PHP-users 744] Re: session情報取得を関数化した場合
S.Sugichan
php-users@php.gr.jp
Tue, 17 Jul 2001 12:54:06 +0900
杉山です。
MLへ返信が出来無かったため、その間、たくさんの方に返答いただきました。
基本的なところで迷っていたみたいです。
正しく処理出来ないと以下のようなWarningになるって事ですか?
Warning: Undefined variable: uname in ???/acflib.php on line 297
Warning: Undefined variable: uname in ???/acflib.php on line 298
問題点:
関数化した場合、セッションで登録した情報引き出せない。
解決方法:
関数内でセッションの処理をする場合、セッションに登録した変数名をglobal
として宣言する必要がある。
指摘していただいた、return $unameに関しては投稿時抜粋する作業において私の
ミスです。すいませんでした。
早速、globalと宣言して問題は解決しましたが、どうも理解できなかった為
以下のソースを作ってみました。
$uname ="";
$dummy = get_uname("web",$PHPSESSID);
print "ユーザ名:$uname<HR>";
[共通関数部]
function get_uname($mode,$sid)
{
session_start();
return("dummy");
}
なるほど、これ$unameが正しく拾えるということは、globalにする必要がある
んですね。
納得しました。
S.Sugichan(ぎゃま)
Mail: sugichan@tkd.att.ne.jp