Я разработал страницу. Всякий раз, когда пользователь посещает эту страницу, создается сеанс. Теперь, если пользователь открывает одну и ту же страницу на двух разных вкладках браузера, создаются две сессии с разными именами.предотвращение воссоздания сессий для страницы
Я использую
public function actionSessionCreate(){
do {
$sessionName= uniqid();
}while (isset(Yii::app()->session[$sessionName]));
Yii::app()->session[$sessionName]='any value';
}
для создания имен сессии. До сих пор его рабочий штраф.
Но проблема, которую я могу предвидеть, заключается в том, что если пользователь просто обновляет страницу, то она также создаст для нее новый сеанс. А также, если пользователь просто перемещается вперед и назад, новый сеанс будет создан снова и снова.
Так как я могу решить эту проблему?
My logic:-
Я собираюсь отправить идентификатор в URL-адрес, который будет использоваться при создании имени сеанса. SO, если пользователь просто обновляет одну и ту же страницу, он будет проверять любое имя сеанса, которое включает идентификатор. Если он найдет это, он не создаст сеанс. В противном случае это создаст его.
Должен ли я идти с этой логикой? Или я не должен играть с такими сеансами?
сеанса сделал вы проверяете сессию перед созданием нового? –
Я не могу проверить имя сеанса, поскольку имя сеанса не передается с одной страницы на другую. Он создается только на этой странице и тоже с уникальным именем. Когда пользователь обновляет страницу, я также теряю имя сеанса. –
id Ваши контроллеры и действия имеют уникальное имя, вы можете использовать их –