在php中覆盖$\u会话变量

在php中覆盖$\u会话变量,php,session-variables,Php,Session Variables,我有一段代码,它应该在提交表单后管理表单,并将$\u SESSION变量设置为用户从选择框中选择的新值。问题是,默认会话变量不会更改,如果用户尝试搜索,并且如果更改了所需的联盟,则将始终获得相同的结果。我怎样才能解决这个问题?注意:session\u start()存在于保存代码的索引页中,也存在于管理数据库操作的类文件中 <?php session_start(); require_once 'app/config.php'; require_once 'app/Autoloader.p

我有一段代码,它应该在提交表单后管理表单,并将
$\u SESSION
变量设置为用户从选择框中选择的新值。问题是,默认会话变量不会更改,如果用户尝试搜索,并且如果更改了所需的联盟,则将始终获得相同的结果。我怎样才能解决这个问题?注意:
session\u 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>


请显示HTML表单。@Jeto form code添加,以便您的PHP代码可以调用
$template->renderTemplate
三次?那似乎。。。古怪的为什么会有一个
$\u环节['competition']='seria'在第三个之前?表单的某些部分也必须丢失,例如
竞争
切换_竞争
(输入)。但代码的最后一部分不仅在他/她第一次访问页面时执行,而且每次都会执行。它不在条件表达式或任何东西的范围内,因此无论发生什么情况,它都将被执行。