Перезаписать переменную $ _SESSION в php - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть этот код, который должен управлять формой после отправки и установить для переменной $_SESSION новое значение, которое пользователь выбирает из поля выбора. Проблема в том, что переменная сеанса по умолчанию не будет изменена, и если пользователь попытается выполнить поиск, он всегда будет получать те же результаты, даже если изменилась желаемая лига. Как я могу решить это? Примечание: session_start() присутствует на странице индекса, которая содержит код, а также присутствует в файле класса, который управляет операциями с базой данных.

<?php
session_start();
require_once 'app/config.php';
require_once 'app/Autoloader.php';

$prediction = new Prediction(new DataManager($db));
$template = new TemplateLoader('app/templates/');

if(isset($_POST['search_matchday'])){
  $matchday = filter_var($_POST['matchday'], FILTER_SANITIZE_NUMBER_INT);
  $data = array(
   'data'=> $prediction->searchMatchday($matchday, $_SESSION['competition']),
   'date'=> new DateTime(),
   'results'=> $prediction->randomResult(),
   'logo'=> $prediction->competitionLogo($_SESSION['competition'])
  );

  echo $template->renderTemplate('home', $data);
}

if(isset($_POST['switch_competition'])){
   $competitionName = $_POST['competition'];
   $_SESSION['competition'] = $_POST['competition'];
   $data = array(
     'data'=> $prediction->switchCompetition($competitionName),
     'date'=> new DateTime(),
     'results'=> $prediction->randomResult(),
     'logo'=> $prediction->competitionLogo($competitionName)
    );

    echo $template->renderTemplate('home', $data);
}


$data = array(
  'data'=> $prediction->defaultCompetition(),
  'results'=> $prediction->randomResult(),
  'date'=> new DateTime(),
  'logo'=> $prediction->competitionLogo('Serie A')
);
$_SESSION['competition'] = 'Serie A';
echo $template->renderTemplate('home', $data);

?>

HTML-форма

<form class="form-inline" method="POST" action="">
  <div class="input-group">
  <input type="text" class="form-control" name="matchday" id="input-matchday" placeholder="Cerca Giornata">
  <div class="input-group-append">
  <button type="submit" name="search_matchday" class="btn btn-link"><i class="fas fa-search"></i></button>
  </div>
  </div>
</form>
...