OsC這一套系統可以說是古董(2.2還support php3的說 = =)
它的session系統是自建的(以php4的session結構上再加建,php3的話就全寫)
因為太舊的關係(legacy coding),使它的session非常不好用
pass variable變得混亂
e.g.
要存寫session就要這樣做
tep_session_register(‘variable1′)
$variable1=’content to store’
那osc就會把東西存到session了
使用tep_session_register()後,
osc會建立一個 global variable給你直接修改 variable的內容,
相對的是這些global variable會使建構變得很混亂
讀取的話,osc在application_top之後
便會把所有session的variables 放到global variables中,
通常先用tep_session_is_registered(‘variable name’)查看session variable是否存在
p.s.1
要integrate的話,原廠來的session name是oscid
不能夠直接用session_start() + $_session[‘var_name’] access
p.s.2
php5中,session的寫法是$_session[‘var_name’]=content
php4中是
session_register(‘var_name’);
$var_name=content
非常感谢,解决了我的疑惑,特别是
“使用tep_session_register()後,osc會建立一個 global variable給你直接修改 variable的內容,相對的是這些global variable會使建構變得很混亂”,我还奇怪怎么会修改到session里的值,原来是有一个同名的变量