PHP购物车

时间:2014-03-11 12:56:47

标签: php

我正在尝试将产品添加到购物车中。

我收到错误说:

警告:

中为foreach()提供的参数无效

它告诉我我收到以下代码的错误:

function isInCart($id) {
if (!empty($_SESSION['sess_uid']['cart'])) {
    foreach ($_SESSION['sess_uid']['cart'] as $report) {
        if ($report['reportID'] == $id) {
            // Report ID found in Cart
            return true;
        }
    }
    // Looped through cart, ID not found
    return false;
} else {
    // Cart empty
    return false;
}
}

标记错误的上述特定行是:

foreach ($_SESSION['sess_uid']['cart'] as $report) {

我也收到以下错误消息:

致命错误:

中只能通过引用传递变量

与此相关的代码如下:

function addToCart($id) {
$report = getReportByID($id);
$author = $report['userID'];

if (!empty($report)) {
    // Got the report
    if (!empty($_SESSION['sess_uid']['cart'])) {
        if (!isInCart($id) && !isOwner($author) && !hasPurchased($id)) {
            array_push($_SESSION['sess_uid']['cart'], $report);
            return true;
        } else {
            return false;
        }
    } else {
        $_SESSION['sess_uid']['cart'] = array();

        if (!isInCart($id) && !isOwner($author) && !hasPurchased($id)) {
            array_push($_SESSION['sess_uid']['cart'], $report);
            return true;
        } else {
            return false;
        }
    }
} else {
    // Unable to get report by ID
    return false;
}
}

上面标记错误的特定代码行是:

array_push($_SESSION['sess_uid']['cart'], $report);

以下代码是我的报告填充商店的原因

<?php

function getReportByID($id) {
$conn = new mysqli(localhost, root, DBPASS, DBNAME);
$sql = "SELECT * FROM reports WHERE reportID = '" . $conn->real_escape_string($id)."';";
// Performs the $sql query on the server
$report = $conn->query($sql);

return $report->fetch_array(MYSQLI_ASSOC);
}

?>

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:3)

我认为这会有所帮助: 它会将您的会话强制转换为数组,因此即使会话为空,也不会出现错误

foreach ((array)$_SESSION['sess_uid']['cart'] as $report) {

让我知道这是否可以解决错误?