Intereting Posts
PHP: найдите дубликаты на основе некоторых значений ключа и выполните операцию по дублированию Управление правилами корзины покупок как получить ДЕНЬ, отсутствующую в рабочие дни с данного диапазона дат? Содержимое / tmp не видно из PHP-FPM при использовании Systemd Работа с CodeKit и haml / PHP Eclipse indigo PDT 3.0 получил Проверить установку ImageMagick Запустите расширение chrome и отправьте данные в PHP-скрипт на загрузку страницы (автоматизируйте процесс) Функция Smarty Object с ассоциативным массивом Неожиданный «=>», ожидаемый один из: «», «», «)», MySQL преобразует мои значения временных меток в 0000-00-00 Лучше ли обращаться с дружественными / чистыми / красивыми URL-адресами с помощью mod_rewrite или с языком, подобным PHP? Как получить полный путь к php-интерпретатору / двоичному файлу без доступа к оболочке Что делает C # при приведении типа письма к int? Как подключиться к PostgreSQL без указания имени базы данных? Как изменить текст кнопки «Выбрать вариант» в Woocommerce?

PHP Session хранит поведение в переменных?

это происходит только в Chrome

Кто-нибудь когда-либо испытывал сессии PHP, сохраняя функциональное поведение в переменных? Я создал следующий скрипт:

<?php session_start(); $_SESSION['count'] = (isset($_SESSION['count'])) ? $_SESSION['count'] + 1 : 0; echo $_SESSION['count']; ?> 

Вы могли бы подумать, что это отразится на 0, 1, 2, 3 и т. Д. При каждой загрузке страницы. Тем не менее, я получаю 1, 3, 5, 7 и так далее. Я узнал, что по какой-то причине $ _SESSION ['count'] действует так, как будто его приростное поведение сохраняется в переменной. Причина, по которой, по-видимому, увеличивается на два при каждой загрузке страницы, заключается в том, что, когда вызывается $ _SESSION ['count'], она автоматически увеличивается на единицу. Чтобы сделать это ясно, следующий скрипт будет выводить и более высокий номер при каждой загрузке страницы.

 <?php session_start(); echo $_SESSION['count']; ?> 

Это будет отражать все $ _SESSION ['count'], а затем $ _SESSION ['count'] + 1 для каждой загрузки страницы. Я попытался отключить сеанс, очистить переменные $ _SESSION и создать новые файлы в разных каталогах с тем же скриптом. Я также пробовал это на http://codepad.viper-7.com/ , и он работает правильно. У кого-нибудь есть идея, почему это произойдет? Сегодня я испытал подобное поведение при установке переменной сеанса на случайное число. При каждой загрузке страницы я получаю новое случайное число, просто повторяя эту переменную. Когда я сериализую или var_dump переменную, она просто возвращает строковое значение.

Это то, что я использовал для отмены сеанса:

 $_SESSION = array(); session_unset(); session_destroy(); 

Я пробовал сценарий в нескольких браузерах. IE и Firefox правильно увеличиваются на 1; однако Chrome увеличивается на 2. Любая идея, почему браузер может повлиять на это?

EDIT: если я создаю новый скрипт и изменяю переменную, он работает правильно. Я заметил, что всякий раз, когда мне нужен этот скрипт из index.php, так что index.php просто имеет, я снова начинаю эту проблему. Итак, что-то происходит с index.php. Может ли быть проблема с моей .htaccess загрузкой страницы более одного раза? Вот:

Мои параметры .htaccess + FollowSymLinks

 RewriteEngine on RewriteBase / RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} DirectoryIndex /index.php FallbackResource /index.php #Allow cross domain AJAX Header set Access-Control-Allow-Origin * RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 

ИЗМЕНИТЬ СНОВА: По запросу пользователя2086860 в комментариях я собираюсь запустить полный поток кода.

Во-первых, я создаю скрипт со следующим кодом:

  <?php session_start(); $_SESSION['counter'] = (isset($_SESSION['counter'])) ? $_SESSION['counter'] + 1 : 0; echo $_SESSION['counter']; ?> 

Этот код сам работает, как и ожидалось, печать 0, 1, 2, 3 и т. Д.

Теперь, если мне нужен этот скрипт через мой index.php, вот так:

 <?php require 'test6.php'; ?> 

Числа начинают увеличиваться на 2, а не на 1. Это вызывает необходимость в моем index.php, что вызывает проблему. Он также закручивает мой файл сценария, так что доступ к test6.php теперь теперь увеличивается на 2 вместо 1. Вы можете увидеть его в действии здесь:

удаленный URL-адрес удален

Просто я понял, что код выше всего моего кода . В index.php и test6.php больше ничего не содержится. Это происходит только в Chrome. Firefox и Internet Explorer работают правильно, увеличивая на 1.

Chrome (и, по-видимому, другие браузеры) искал значок, или изображение, которое появляется рядом с заголовком страницы. Как только я добавил изображение на мою страницу следующим образом:

 <!DOCTYPE html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="icon" type="image/png" href="http://img.ruphp.com/php/icon.png"> </head> 

Это сработало. Спасибо @ dev-null-dweller за это!