Joomla の使用中にセッション/Cookie に問題が発生しました! バージョン: Joomla! 1.5.9 本番/安定版 [Vatani] 2009 年 1 月 9 日 23:00 GMT。
データをセッションに保存し、次のページでアクセスしようとしています。試してみました:
1) joomlas セッションの使用 ($session->set('var', 'data')) - これは私の推奨方法です
2) 通常の PHP セッションの使用 ($_SESSION['Var'] = 'data') - joomla メインフレームを初期化するまで、これは正常に動作します
3) PHP Cookie の使用 (setcookie('var', 'data', time()+3600,'/');) - これも joomla を初期化するまで機能します。
これが私が使用しようとしているコードです:
ページ1:
define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../..' ));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
$session = JFactory::getSession();
$thedata = array();
$i = 0;
if($resultscount > 0) // $resultscount = mysql_num_rows($sql) == 1097 in my script
{
while($row = mysql_fetch_assoc($result))
$thedata[$i]['id'] = $row['user_id'];
...LOTS more additions to $thedata, 1000+ rows containing 28 variables each.
$i++;
}
$session->set('thedata',$thedata);
ページ2:
define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../..' ));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
$session = JFactory::getSession();
print_r($session->get('thedata'));
セッションは常に空です。セッションに少量のデータ (1 行または 2 行) しか含まれていない場合は機能しますが、多数の結果をセッションに保存しようとすると、セッションが中断され、次のページでセッションが空になります。
Cookie でも同じことが起こります。結果が少ない = 正常に動作し、結果が多い = Cookie が空です。
私は何を間違っていますか?