Это был еще один из тех моментов, которые тянутся волосы, и мне было интересно, может ли кто-нибудь пролить свет на этот вопрос, который у меня есть.Невозможно установить переменные сеанса на странице, обрабатывающей session.upload_progress.name
Мне удалось воспроизвести проблему с помощью двух простых страниц php.
Page1 (test.php)
Это только простая форма загрузки файла, который также использует скрытое поле session.upload_progress.name
. Затем он выводит $_SESSION
массив:
<form name="fileupload" action="test2.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="123">
<input type="file" name="newfile">
<input type="submit" name="submit" value="Submit">
</form>
<?php
if(!isset($_SESSION)) {
session_start();
}
print_r($_SESSION);
?>
Page 2 (test2.php) Эта страница просто добавляет переменную сеанса, и выводит $_SESSION
массив. Она также включает в себя ссылку, чтобы вернуться к test.php:
<?php
if(!isset($_SESSION)) {
session_start();
}
$_SESSION['new']='Im a new value that will disappear';
print_r($_SESSION);
?>
<a href="test.php">Go back</a>
Теперь, если вы загрузите test1.php
, он будет:
{ The form }
Array()
Нажмите представить, и это приведет вас к test2.php и выход:
Array
(
[upload_progress_123] => Array
(
[start_time] => 1419385365
etc etc ...
)
)
[new] => Im a new value that will disappear
)
Теперь нажмите кнопку 'назад', и это будет только выход:
{ the form }
Array
(
[upload_progress_123] => Array
(
[start_time] => 1419385365
etc etc ...
)
)
)
(Обратите внимание, как [new]
нет)
Есть ли веские основания для того, почему это происходит?
В этом примере у меня установлен session.upload_progress.cleanup
для отладки. Но поведение нового сеанса одинаково, когда оно установлено на.
Похоже, я Гунн должен придерживаться баунти на него ... Просто из любопытства, кто-нибудь скопировал мой код и получил тот же результат? –