为什么这个变量未定义? (PHP)

时间:2014-03-23 16:49:18

标签: php session variables

- 再次编辑 - 谢谢你们,修补了一下并得到了它


我正在测试如何使用变量,我遇到了这个错误:

Undefined variable: _SESSION in F:\wamp\www\css\Products.php on line 34

它正在呼叫的行来自以下内容:

<?php

        if(isset($message)){
            echo "<h2><center>$message</center></h2>";
        }
    echo print_r($_SESSION['Cart']);
?>

(“Echo”行是第34行)

但我以为我用这个来定义变量:

<?php

    if(isset($_GET['action']) && $_GET['action']=="add"){

        $id=intval($_GET['id']);

        if(isset($_SESSION['Cart']['id'])){
        $_SESSION['Cart'][$id]['quantity']++;

        }else{

            $sql_s="SELECT * FROM products
                WHERE Product_ID={$id}";
            $query_s=mysql_query($sql_s);
            if(mysql_num_rows($query_s)!=0){
                $row_s=mysql_fetch_array($query_s);

                $_SESSION['Cart'][$row_s['Product_ID']]=array(
                    "quantity" => 1
                    );
            }else{

                $message="This product does not exist.";
            }
        }
    }
?>

全部匹配我的SQL表名。

- 编辑 -

我忘了提到我确实有session_start();在我的文档的顶部,但我的索引调用此特定页面。我的索引从

开始
<?php
    session_start();
    require("connection.php");
    if(isset($_GET['page'])){

        $pages=array("Products","Selection");

        if(in_array($_GET['page'], $pages)) {

            $_page=$_GET['page'];

        }else{
            $_page="Products";
        }
    }else{
        $_page="Products";
    }
?>

“产品”是我遇到问题的页面,尽管它可能与此相关。

3 个答案:

答案 0 :(得分:2)

您忘了将session_start()放在页面顶部。如果没有它,会话将无法运作。

<?php
    session_start();
    if(isset($_GET['action']) && $_GET['action']=="add"){

        $id=intval($_GET['id']);

答案 1 :(得分:1)

您需要在PHP代码之上添加session_start();。这就是背后的确切原因!

<?php
session_start(); //<-------- This one !!!!

在您使用会话的每个页面上添加它!

答案 2 :(得分:0)

<?php

session_start();

在PHP页面顶部启动会话