在php中$\u Post后会话变量丢失

在php中$\u Post后会话变量丢失,php,session,post,Php,Session,Post,我在开始时有session变量,但在单击按钮后它丢失了。这是我的代码,$\u SESSION['InputCount']在开始时不是null和true,但单击按钮后,我无法访问SESSION变量$isset块中的迭代变量为null。我还有一个sesion变量,它保存了上一页的userid,它没有问题,仍然是真的。$iteration有什么问题 <?php require("includes/db.php"); require("includes/functions.php"); ses

我在开始时有session变量,但在单击按钮后它丢失了。这是我的代码,$\u SESSION['InputCount']在开始时不是null和true,但单击按钮后,我无法访问SESSION变量$isset块中的迭代变量为null。我还有一个sesion变量,它保存了上一页的userid,它没有问题,仍然是真的。$iteration有什么问题

<?php

require("includes/db.php");
require("includes/functions.php");

session_start();  

$inputCount = mysql_real_escape_string($_POST['inputCount']);
$_SESSION['InputCount'] = $inputCount;   //it is ok at the begining

//check if the form has been submitted
if(isset($_POST['checkoutButton'])){

    $iteration = $_SESSION['InputCount'];
    var_dump ($iteration);

    $userID = $_SESSION['UserID']; 

无论页面如何加载,都会将$u POST['inputCount']的值分配给会话变量

换句话说,当您使用“签出”按钮发回时,您不是从会话中提取inputCount的值,而是基于当前$\u post['inputCount']覆盖该值,然后从会话中读取该值(这是多余的)

您可能想要的是这样的:

require("includes/db.php");
require("includes/functions.php");

session_start();  

//check if the form has been submitted
if(!isset($_POST['checkoutButton'])){
    $inputCount = mysql_real_escape_string($_POST['inputCount']);
    $_SESSION['InputCount'] = $inputCount;   //it is ok at the begining
} else {
    $iteration = $_SESSION['InputCount'];
    var_dump ($iteration);

    $userID = $_SESSION['UserID'];
}

为什么在您的代码末尾有第二个
会话\u start
?您当前的代码只是指
$iteration=mysql\u real\u escape\u字符串($\u POST['inputCount']):这是预期的行为吗?“但在我点击按钮后”-什么按钮?向我们展示完整的代码及其使用方法。抱歉,我的代码中没有第二个会话\u start。复制粘贴它是我的错误。我编辑了我的帖子。所以,手帕웃潘奇,是的,我需要that@Fred-ii-它是checkburatton,您可以看到我单击它后运行的代码(isset部分)