1、前面有session_start();吗?
2、你的php版本是多少?

解决方案 »

  1.   

    有,在程序的开始就用了session_start();
    我的php是php4.30
    那段代码是在一个自定义的函数中。
      

  2.   

    在函数中加上global $_SESSION;
      

  3.   

    php4.30 
    register_globals =off
    session是超级变量,不用global的。
      

  4.   

    我global $_SESSION;
    后,我的购物车就加不进物品了。
      

  5.   

    按说$_SESSION是全局的不应该出现这种现象的
    echo $_SESSION['selected_item_id'];//这里无值才会在下面赋值
    if(!isset($_SESSION['selected_item_id'])) // 若存在,即使是空值条件也不成立的
     {
      $book->Add($_GET['selected_item_no'],1,$db->get('purchase_money'));
      $_SESSION['selected_item_id'] = $_GET['selected_item_no'];
     }
    echo $_SESSION['selected_item_id'];//这里应该有了
      

  6.   

    $_SESSION 在 PHP 4.1.2 不可用访问http://bugs.php.net/bug.php?id=16043查看详细内容
      

  7.   

    to: xuzuning(唠叨)
    echo $_SESSION['selected_item_id'];//这里应该有了
    这样确实有值了,但是我仍然不能控制用户点后退后执行这段程序。
    痛苦ing
    真的不知导出了什么问题?
      

  8.   

    if(!isset($_SESSION['selected_item_id']))=>if(empty($_SESSION['selected_item_id']))
      

  9.   

    还是不行,其实
    if(!isset($_SESSION['selected_item_id']))

    if(empty($_SESSION['selected_item_id']))
    效果应该一样吧!
      

  10.   

    不一样。
    如果变量值为空或0,用isset返回false,而用empty则返回true。
      

  11.   

    噢错了,
    应该是“如果变量值为空或0,用!isset($var)返回false,而用empty($var)则返回true”。
    不好意思。