почему PHP Session Array не переносится на новую страницу только на первом экземпляре на веб-сервере, но все время работает на localhost

У меня есть сеанс многомерный массив, который заполняется правильно помечены $_SESSION['data'] что пользователь может экспортировать как .csv, Я проверил это на localhost и это работает правильно 100% времени.

Я загрузил на веб-сервер, и он больше не работает должным образом
Я подтвердил, что массив заполняется реальными данными print_r($_SESSION['data']); и результаты отображаются на странице с данными, представляющими интерес каждый раз. (в настоящее время я отключил вывод на самом сайте, чтобы уменьшить время загрузки)

однако действительно странная вещь, которая сводит меня с ума в течение целого дня, это то, что она работает, но только после попытки экспортировать ее один раз (которая экспортирует пустой файл), снова запустите страницу и затем снова нажмите кнопку экспорта (и она заполняется) с правильными данными)

вот код экспорта, который я использую

<?PHP
session_start();
$tdata = array();
$tdata = $_SESSION['data'];

function cleanData(&$str)
{
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}

// file name for download
$filename = "CSVOutput" . date('Ymd') . ".csv";
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/vnd.ms-excel");

$flag = false;
foreach($tdata as $row) {
if(!$flag) {
// display field/column names as first row
echo implode(",", array_keys($row)) . "\n";
$flag = true;
}
array_walk($row, 'cleanData');
echo implode(",", array_values($row)) . "\n";
}

exit;

?>

и вот ссылка на мою страницу, которая плохо себя ведет:

http://mathdraft.com/FootballCalculator.php

после того, как вы откроете страницу, если вы сделаете следующее, вы создадите то, что я испытываю

  1. хит вычислить
  2. хит экспорт
  3. откройте csv — увидите, что он пуст
  4. хит вычислить
  5. хит экспорт
  6. открыть CSV — у него есть данные

я построил это на wamp использование сервера php 5.5.12 мой хозяин имеет php 5.3.29

http://mathdraft.com/phpinfo.php

Есть ли какой-то явной ошибки я делаю в коде экспорта выше? или это какая-то конфигурация сервера? или это (и я предполагаю, что это) какая-то функция моего кода спагетти, которая вызывает эту ошибку. это просто сбивает с толку меня, что это будет работать половину времени, как это, когда массив сессий заполняется должным образом каждый раз. он работает на 100% правильно каждый раз / расчет / итерация после этого начального расчета

здесь html позвонить CSVout процедура

<createcsv>
<FORM NAME ="form2" METHOD ="POST" ACTION = "csvout.php">
<INPUT TYPE = "Submit" Name = "Submit2" style="height:24px; width:145px; background-color:#FFFFCC; border-color: #556C55" VALUE = "Export Results">
</form>
</createcsv>

и создание сеанса $_SESSION['data'] = $data;

Я действительно тяну свои волосы на этом, любой совет будет оценен. это мое PHP учебный проект, и я буду делать редизайн кода, но я просто не могу допустить, чтобы эта незначительная ошибка прошла до ее запуска, так как это единственное, что удерживает меня от мысли, что эта версия 1 «сделана»

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]