У меня проблема с Zend_Session.Мне нужно знать, был ли сеанс для этого пользователя первоначально запущен в первый раз или он был только что обновлен в текущем запросе.
Мне нужно знать это для статистики.Если сеанс был инициализирован (то есть пользователь впервые посещает мое приложение), я хочу сохранить реферер запроса в некоторой db-таблице.Это, конечно, я хочу сделать только для первого запроса в этом сеансе.
В руководстве рассказывается о методах Zend_Session::isStarted()
и Zend_Session::sessionExists()
.Но похоже, что оба метода работают только для текущего запроса (то есть он возвращает true, если я использую Zend_Session::start()
где-то в своем приложении).
Мой подход был следующим: я попытался переопределить Zend_Session::start()
длявставьте статистические данные в мою базу данных.
// Somewhere in my bootstrap:
My_Session::start();
// This is my class (eased up)
class My_Session extends Zend_Session
{
public static function start($options)
{
parent::start($options);
if(/* Here I need the condition to test, if it was the initial session-starting... */)
{
$table = new Zend_Db_Table(array('name' => 'referer'));
$row = $table->createRow();
$row->url = $_SERVER['HTTP_REFERRER'];
$row->ip = $_SERVER['REMOTE_ADDR'];
// ... some columns ...
$row->save();
}
}
}
У кого-нибудь есть идеи?