存储在会话中的数据,但在其他php文件中获取某些对象时为空

存储在会话中的数据,但在其他php文件中获取某些对象时为空,php,session,Php,Session,在我将数据存储在会话数组中的原始会话上,当我获取它时,所有数据都是完整的,但是当我在另一个会话上调用该会话时,一些数据是空的或未定义的 我不知道该怎么办,请帮忙 编辑:在原始文件中 $query = $dbh->prepare("Select p.start_date,p.end_date,dfp.id,dfp.product_id dfp.type,dfp.quantity_required,dfp.less,pd.unit,pd.name from promo

在我将数据存储在会话数组中的原始会话上,当我获取它时,所有数据都是完整的,但是当我在另一个会话上调用该会话时,一些数据是空的或未定义的

我不知道该怎么办,请帮忙

编辑:在原始文件中

$query = $dbh->prepare("Select p.start_date,p.end_date,dfp.id,dfp.product_id
      dfp.type,dfp.quantity_required,dfp.less,pd.unit,pd.name
      from promo p
      inner join discounts_free_products dfp                        
      on p.id=dfp.promo_id                        
      inner join products pd                        
      on dfp.product_id=pd.id                       
      where DATE(p.end_date) >= DATE(NOW()) 
");
$query->execute();
$count=0;
$queryresult_set=array();
$queryresult_set=$query->fetchAll();
$count=count($queryresult_set); 
$_SESSION['COUNT_PROMO']= $count;
$_SESSION["PROMO_PRODUCTS"]=$queryresult_set;
在其他php文件中

foreach($_SESSION["PROMO_PRODUCTS"] as $result) { 
    $pc_list[] = $result["product_id"]; 
    $d_id=$result['id']; 
} 
错误:未定义索引:产品id

会话通过
session\u start()
函数启动。

会话创建

<?php
    // Start the session
    session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
    // Set session variables
    $_SESSION["favcolor"] = "green";
    $_SESSION["favanimal"] = "cat";
?>

</body>
</html>

检索另一页上的会话

<?php
    session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
    // Echo session variables that were set on previous page
    echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
    echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>

</body>
</html>

会话通过
session\u start()
函数启动。

会话创建

<?php
    // Start the session
    session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
    // Set session variables
    $_SESSION["favcolor"] = "green";
    $_SESSION["favanimal"] = "cat";
?>

</body>
</html>

检索另一页上的会话

<?php
    session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
    // Echo session variables that were set on previous page
    echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
    echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>

</body>
</html>

您可能忘记添加
会话_start()在文件的开头。这是我开始时最常见的问题。但是没有你的代码,这里没有人能帮你


编辑: 你确定你有:
original.php

session_start();
$query = $dbh->prepare("Select p.start_date,p.end_date,dfp.id,dfp.product_id
          dfp.type,dfp.quantity_required,dfp.less,pd.unit,pd.name
          from promo p
          inner join discounts_free_products dfp                        
          on p.id=dfp.promo_id                        
          inner join products pd                        
          on dfp.product_id=pd.id                       
          where DATE(p.end_date) >= DATE(NOW()) 
");
$query->execute();
$count=0;
$queryresult_set=array();
$queryresult_set=$query->fetchAll();
$count=count($queryresult_set); 
$_SESSION['COUNT_PROMO']= $count;
$_SESSION["PROMO_PRODUCTS"]=$queryresult_set;
session_start();
foreach($_SESSION["PROMO_PRODUCTS"] as $result) { 
        $pc_list[] = $result["product_id"]; 
        $d_id=$result['id']; 
} 
other.php中

session_start();
$query = $dbh->prepare("Select p.start_date,p.end_date,dfp.id,dfp.product_id
          dfp.type,dfp.quantity_required,dfp.less,pd.unit,pd.name
          from promo p
          inner join discounts_free_products dfp                        
          on p.id=dfp.promo_id                        
          inner join products pd                        
          on dfp.product_id=pd.id                       
          where DATE(p.end_date) >= DATE(NOW()) 
");
$query->execute();
$count=0;
$queryresult_set=array();
$queryresult_set=$query->fetchAll();
$count=count($queryresult_set); 
$_SESSION['COUNT_PROMO']= $count;
$_SESSION["PROMO_PRODUCTS"]=$queryresult_set;
session_start();
foreach($_SESSION["PROMO_PRODUCTS"] as $result) { 
        $pc_list[] = $result["product_id"]; 
        $d_id=$result['id']; 
} 
编辑
尝试:


也许你有饼干,但却错过了在其他地方填它。这是来自

您可能忘记添加
会话_start()在文件的开头。这是我开始时最常见的问题。但是没有你的代码,这里没有人能帮你


编辑: 你确定你有:
original.php

session_start();
$query = $dbh->prepare("Select p.start_date,p.end_date,dfp.id,dfp.product_id
          dfp.type,dfp.quantity_required,dfp.less,pd.unit,pd.name
          from promo p
          inner join discounts_free_products dfp                        
          on p.id=dfp.promo_id                        
          inner join products pd                        
          on dfp.product_id=pd.id                       
          where DATE(p.end_date) >= DATE(NOW()) 
");
$query->execute();
$count=0;
$queryresult_set=array();
$queryresult_set=$query->fetchAll();
$count=count($queryresult_set); 
$_SESSION['COUNT_PROMO']= $count;
$_SESSION["PROMO_PRODUCTS"]=$queryresult_set;
session_start();
foreach($_SESSION["PROMO_PRODUCTS"] as $result) { 
        $pc_list[] = $result["product_id"]; 
        $d_id=$result['id']; 
} 
other.php中

session_start();
$query = $dbh->prepare("Select p.start_date,p.end_date,dfp.id,dfp.product_id
          dfp.type,dfp.quantity_required,dfp.less,pd.unit,pd.name
          from promo p
          inner join discounts_free_products dfp                        
          on p.id=dfp.promo_id                        
          inner join products pd                        
          on dfp.product_id=pd.id                       
          where DATE(p.end_date) >= DATE(NOW()) 
");
$query->execute();
$count=0;
$queryresult_set=array();
$queryresult_set=$query->fetchAll();
$count=count($queryresult_set); 
$_SESSION['COUNT_PROMO']= $count;
$_SESSION["PROMO_PRODUCTS"]=$queryresult_set;
session_start();
foreach($_SESSION["PROMO_PRODUCTS"] as $result) { 
        $pc_list[] = $result["product_id"]; 
        $d_id=$result['id']; 
} 
编辑
尝试:


也许你有饼干,但却错过了在其他地方填它。这是来自

请共享您的代码?在注释中添加有问题的代码…如果@Abdulla的answear是正确的,请确保标记它。请共享您的代码?在注释中添加有问题的代码…如果@Abdulla的answear是正确的,请确保标记它。