Php 重新加载页面后会话变量为空

Php 重新加载页面后会话变量为空,php,session-variables,Php,Session Variables,在我的电子商务应用程序的购物车页面上,我的许多会话变量中只有一个不知何故被破坏了。当我将产品与会话id一起添加到购物车时,它会创建一个订单id(使用一些哈希和salt逻辑)并将其放入会话变量中,当我转到购物车页面时,它会根据订单id和会话id查询DB以获取购物车中的产品。这是它第一次获取记录,但是在它之后,如果我重新加载页面,它会立即得到一个空的order\u id 它只在web服务器上运行,但在本地主机上运行完全正常 我的添加到\u cart.php(会话逻辑) Mycart.php(仅限会话

在我的电子商务应用程序的购物车页面上,我的许多会话变量中只有一个不知何故被破坏了。当我将产品与会话id一起添加到购物车时,它会创建一个订单id(使用一些哈希和salt逻辑)并将其放入会话变量中,当我转到购物车页面时,它会根据订单id和会话id查询DB以获取购物车中的产品。这是它第一次获取记录,但是在它之后,如果我重新加载页面,它会立即得到一个空的order\u id

它只在web服务器上运行,但在本地主机上运行完全正常

我的
添加到\u cart.php
(会话逻辑)

My
cart.php
(仅限会话逻辑)

$user\u sessiond=$\u SESSION['sessiond'];
$order\u id=$\u会话['order\u id'];
$userid=$\u会话['user\u id'];
if(空($userid)){
$r_类型=1;

$q1=您可能需要将
会话_start()
添加到文件顶部

编辑: 您说您正在查询会话id和订单id,但您也有

and od.product_id = p.id 

在查询结束时。此逻辑在哪里?我猜您正在使用$\u GET请求或类似的方法来确定产品ID。可能这与您的问题有关,可能只是将其从查询中删除?您应该只需要为SQL查询使用1个唯一键,尤其是与您正在创建的哈希相同的唯一键

这一点很明显,但请检查您是否在两个页面上都确实调用了session\u start()。

session\u start()
在每一页上都缺失。-这是每个浏览器中的问题还是仅在Chrome中出现的问题?如果它与Chrome相关,请确保包含favicon。@Perry我想到了这一点,但它在firefox中也给出了相同的内容。我们可以看到启动会话的文件的内容吗?是在中执行的同一个文件吗两个页面的方式都一样?@coder101我们都要求相同的东西,因为查看问题中涉及的所有代码是一种很好的做法。这可能像打字错误一样简单-我已经有过几十次这样的情况。我们想帮上忙,但如果我们看不到整件事的话,我们就无能为力。好吧,无意冒犯,但我知道这一点,我正在包括函数两个页面上都有一个ions文件,上面有
session\u start
,它解释了session\u id没有清空。@coder101我不认为你不知道,我只是没有将它视为代码的一部分。
和od.product\u id=p.id
用于对获取的结果中的产品进行分组,我只是加入了两个表但是如何解释只有一个会话变量被销毁,而不是所有会话变量都被销毁
 $user_sessid = $_SESSION['sessid'];
 $order_id = $_SESSION['order_id'];

 $userid = $_SESSION['user_id'];

 if(empty($userid)){

 $r_type = 1;   

 $q1=<<<SQL
select od.ipaddress, od.modified_ts, od.product_id,od.discount,od.quantity,p.id,p.name,p.price, p.img_dir,p.img_name from orders od, products p where od.order_id='$order_id' and od.user_sessid='$user_sessid' and od.product_id = p.id
 SQL;

} else {
$r_type = 2;

  $q1=<<<SQL
select uc.modified_ts, uc.product_id,uc.discount,uc.quantity,p.id,p.name,p.price, p.img_dir,p.img_name from user_cart uc, products p where uc.userid='$userid' and uc.product_id = p.id
  SQL;


}

 $r1=$db->query($q1);
 $num1 = $r1->num_rows;
and od.product_id = p.id