добавить номер в сессию недействительно - PullRequest
0 голосов
/ 29 января 2019

index.php

<?php
session_start();
var_dump($_SESSION);
if (!isset($_SESSION['count'])) {
    $_SESSION['count'] = 0;
} else {
    $_SESSION['count'] += 1;
}

var_dump($_SESSION);
?>

Я хочу сохранить номер в сеансе, при перезагрузке страницы распечатать сеанс и добавить его к номеру.

Проблема: «добавить один» кажется выполненным два раза при одной перезагрузке;одна перезагрузка

array(1) { ["count"]=> int(3) } array(1) { ["count"]=> int(4) }
$ cat sess_xxxxx
count|i:5;

почему хранилище номеров в сеансе становится 5, последний var_dump на странице равен 4?

Используемый мной веб-сервер - Nginx.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

У меня был запрос /index.php дважды;

Запрос на http://mywebstie, по умолчанию отправляет два запроса "GET /" и "GET /favicon.ico", и Мой веб-сервер Nginxconfig:

location / { 
    try_files $uri $uri/ /index.php?$query_string;
}  

: «GET /favicon.ico» перенаправляется в /index.php。
. Таким образом, страница была перезагружена дважды, а «add one» будет выполнен дважды.

0 голосов
/ 29 января 2019
<?php  

session_start(); 

if(isset($_SESSION['count'])) 
    $_SESSION['count'] = $_SESSION['count']+1; 
else
    $_SESSION['count']=1; 

echo "views = ".$_SESSION['count']; 

?> 

Объяснение

session_start (): Это первый шаг, который используется для запуска сеанса.

$ _ SESSION ['count'] : это переменная сеанса, которая используется для хранения количества просмотров сеанса пользователя.

isset () : Это стандартная функция php, которая возвращает true или false в зависимости от того, установлен переданный параметр или нет.

Update :

<?php

print_r($_SESSION);

session_start();
if (isset($_SESSION['count'])) {
    $_SESSION['count'] = $_SESSION['count'] + 1;

} else {
    $_SESSION['count'] = 0;
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...