Мои мульти-страницы прекрасно работают, пока я не сбросил переменную. Почему? - PullRequest
0 голосов
/ 15 марта 2020

Я уже некоторое время работаю над мультиформальной страницей. Мне нужна помощь, чтобы понять, почему, когда я сбрасываю переменную, страницы с несколькими формами перестают работать правильно. Я поместил в код оператор echo для отслеживания значения переменной, и даже после обновления страницы sh переменная остается. Я буквально должен удалить куки для сайта, чтобы переменная была сброшена.

Вот код:

<?php
session_start();
// Start the session
echo $_SESSION["formatPickleball"];
$_SESSION["Pickleball"] = "";
// Submit button is pressed
if (isset($_POST['format1']))
{
    $_SESSION["formatPickleball"] = $_POST['member'];
    $_SESSION["Pickleball"] = "hide";
}
if ($_SESSION["formatPickleball"] == "Captain") {
$regCAP = "";
// Submit button is pressed
if (isset($_POST['submitCAP']))
{
$regCAP = "show";
}
$secondCAP = "";
// Submit button is pressed
if (isset($_POST['submit2']))
{
$secondCAP = "show";
}
$thirdCAP = "";
// Submit button is pressed
if (isset($_POST['submit3']))
{
$thirdCAP = "show";
}
} elseif ($_SESSION["formatPickleball"] == "Player") {
$regPlay = "";
// Submit button is pressed
if (isset($_POST['submitPlay']))
{
$regPlay = "show";
} 
}
?>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.min.css">
    <script type="text/javascript"></script>
<body>
<div id="mainForm">
    <h4>Are you a Captain or a Player on a Team?</h4>
<form method='POST'>
    <input type="radio" name="member" value="Captain">Captain
    <input type="radio" name="member" value="Player">Player<br>
    <input type="submit" name="format1" value="Select">     
</form>
</div>

<div id="firstForm-CAP">
    <h4>Captain's Registration Form - Page 1</h4>
<form method='POST'>
    <input type="submit" name="submitCAP" value="Step 2" Style = "color:white; background-color:blue" required>     
</form>
</div>
<br>
<div id="secondForm-CAP">
    <h4>Captain Registration Form - Page 2</h4>
<form method='POST'>
    <input type="submit" class="pull-left" name="submit2" value="Next Step" Style = "color:white; background-color:blue">
</form>
</div>
<div id="thirdForm-CAP">
    <h4>Captain's Registration Form - Page 3</h4>
<form method='POST'>
    <input type="submit" class="pull-left" name="submit3" value="Next Step" Style = "color:white; background-color:blue">
</form> 
</div>  
<div id="paypalForm-CAP">
    <h4>Captain's Registration Form - Last Page 4</h4>
</div>
<div id="firstForm-Play">
    <h4>Player Registration Form - Page 1</h4>
<form method='POST'>
    <input type="submit" name="submitPlay" value="Next" Style = "color:white; background-color:blue" required>      
</form>
</div>
<br>
<div id="secondForm-Play">
<h4>Player Registration Form - Last Page 2</h4>
</div>
</body>
<?php
if($_SESSION["Pickleball"]!="" && $_SESSION["formatPickleball"] == "Captain"){
?>
<script type="text/javascript">
$("#mainForm").hide();  
$("#firstForm-CAP").show();
$("#secondForm-CAP").hide();
$("#thirdForm-CAP").hide();     
$("#paypalForm-CAP").hide();
$("#firstForm-Play").hide();
$("#secondForm-Play").hide();
</script>
<?php
}elseif($regCAP!=""){
?>
<script type="text/javascript">
$("#mainForm").hide();  
$("#firstForm-CAP").hide();
$("#secondForm-CAP").show();
$("#thirdForm-CAP").hide();     
$("#paypalForm-CAP").hide();
$("#firstForm-Play").hide();
$("#secondForm-Play").hide();
     </script>
<?php
}elseif($secondCAP!=""){
?>
<script type="text/javascript">
$("#mainForm").hide();
$("#firstForm-CAP").hide();
$("#secondForm-CAP").hide();
$("#thirdForm-CAP").show(); 
$("#paypalForm-CAP").hide();
$("#firstForm-Play").hide();
$("#secondForm-Play").hide();
</script>
<?php
}elseif($thirdCAP!=""){
?>
<script type="text/javascript">
$("#mainForm").hide();
$("#firstForm-CAP").hide();
$("#secondForm-CAP").hide();
$("#thirdForm-CAP").hide(); 
$("#paypalForm-CAP").show();
$("#firstForm-Play").hide();
$("#secondForm-Play").hide();
</script>
<?php
}elseif($_SESSION["Pickleball"]!="" && $_SESSION["formatPickleball"] == "Player"){
?>
<script type="text/javascript">
$("#mainForm").hide();
$("#firstForm-CAP").hide();
$("#secondForm-CAP").hide();
$("#thirdForm-CAP").hide(); 
$("#paypalForm-CAP").hide();
$("#firstForm-Play").show();
$("#secondForm-Play").hide();
</script>
    <?php
}elseif($regPlay!=""){
?>
<script type="text/javascript">
$("#mainForm").hide();
$("#firstForm-CAP").hide();
$("#secondForm-CAP").hide();
$("#thirdForm-CAP").hide(); 
$("#paypalForm-CAP").hide();
$("#firstForm-Play").hide();
$("#secondForm-Play").show();
</script>
    <?php
}else{
?>
<script type="text/javascript">
$("#mainForm").show();
$("#firstForm-CAP").hide();
$("#secondForm-CAP").hide();
$("#thirdForm-CAP").hide(); 
$("#paypalForm-CAP").hide();
$("#firstForm-Play").hide();
$("#secondForm-Play").hide();
</script>
<?php
}
?>
    <script type="text/javascript">
$(".chosen").chosen();
</script>
</html>

Когда я добавляю $ _SESSION ["formatPickleball"] = ""; к началу кода php, мульти-форма не работает правильно.

У меня есть два вопроса 1) Как я могу удалить переменную, не удаляя куки? 2) это самый эффективный способ написать этот код в PHP?

Ответы [ 3 ]

0 голосов
/ 15 марта 2020

Значения, сохраненные в сеансе, должны быть отброшены в конце выполнения скрипта.

  1. Уничтожить $_SESSION с помощью unset($ _ SESSION) и
  2. , а затем уничтожить сеанс сам с помощью session_destroy();
0 голосов
/ 19 марта 2020

Мне удалось очистить переменную с помощью всплывающего окна windows, как только оператор if был заполнен.

if ($Num_CTeams > 1 && $_SESSION["Pickleball"] !="") {
    echo '<script language="javascript">';
    echo 'alert("Sorry, Captains can only captain up to two teams ONLY.")';
    echo '</script>';
    $_SESSION["formatPickleball"] = "";
} 
0 голосов
/ 15 марта 2020
<?php
session_start();

echo $_SESSION["formatPickleball"];
$_SESSION["Pickleball"] = "";

if (isset($_POST['format1']) && $_POST['format1'] && isset($_POST['member']) && $_POST['member']) {
    $_SESSION["formatPickleball"] = $_POST['member'];
    $_SESSION["Pickleball"] = "hide";
}

if ($_SESSION["formatPickleball"] == "Captain") {
    $regCAP = isset($_POST['submitCAP']) && $_POST['submitCAP'] ? "show": "";
    $secondCAP = isset($_POST['submit2']) && $_POST['submit2'] ? "show": "";
    $thirdCAP = isset($_POST['submit3']) && $_POST['submit3'] ? "show": "";
} 
if ($_SESSION["formatPickleball"] == "Player") {
    $regPlay =  isset($_POST['submitPlay']) && $_POST['submitPlay'] ? "show" : "";
}
...