0

zend フレームワークで zend_session_namespace を使用して単純なリフレッシュ カウンターを構築しようとしましたが、期待どおりに動作しません。設定後に名前空間を呼び出すことができません。以下の例では、コードは何度も「1」を示しています。トラブルシューティングのアドバイスはありますか?

Zend_Session::start();
$defaultNamespace = new Zend_Session_Namespace('numbertester');

// Increment page views
if(isset($defaultNamespace->number)){
    // The code is never entering here
    $defaultNamespace->number++;
} else {
    $defaultNamespace->number = 1;
}

echo $defaultNamespace->number;

アップデート

セッション構成をテストするためにこのスクリプトを見つけました。サーバーで実行すると、最後の部分になり、セッションの構成が正しくないことがわかります。ここからどうすればいいのかわからない?

if( function_exists('ini_get') &&
    in_array(strtolower(ini_get('session.save_handler')), array('user', 'users')) ) {
  if( function_exists('ini_set') &&
      false !== ini_set('session.save_handler', 'files') &&
      false !== ini_set('session.save_path', APPLICATION_PATH . '/temporary/session/') ) {
    if( !is_writable(APPLICATION_PATH . '/temporary/session/') ) {
      throw new Exception('Please set full permissions on temporary/session (chmod 0777).');
    }
  } else {
    throw new Exception('Your session configuration is incorrect and ' .
        'could not be automatically corrected. Please set ' .
        'session.save_handler=files and session.save_path=/tmp (or your ' .
        'temporary directory on non-Linux OSes.');
  }
}
4

2 に答える 2

0

php.ini ファイルでこの解決策を試してください (ローカル マシンで作業している場合)。

セッションを保存するパスを定義する

session.save_path = "C:\php\sessiondata\"

クッキーを使用するかどうか。

session.use_cookies = 1 

リクエストの起動時にセッションを初期化します。

Set session.auto_start = 1

セッションの名前 (Cookie 名として使用)。

session.name = PHPSESSID
于 2012-10-11T15:37:11.203 に答える
-1

コードとその動作をテストしたため、問題は別の場所にある可能性があります。詳細については、これを確認してください:

http://framework.zend.com/manual/1.12/en/zend.session.basic_usage.html

于 2012-10-10T10:30:28.353 に答える