> 백엔드 개발 > PHP 문제 > 로그인하지 않고 PHP에서 장바구니를 추가하는 방법

로그인하지 않고 PHP에서 장바구니를 추가하는 방법

PHPz
풀어 주다: 2023-04-05 16:10:01
원래의
1236명이 탐색했습니다.

현대 전자상거래에서 장바구니는 고객이 보다 편리하게 제품을 선택하고 구매할 수 있도록 도와주는 중요한 대화형 도구입니다. 일반적으로 고객이 장바구니에 상품을 담기 전에 로그인이 필요하지만, 경우에 따라 로그인 없이 장바구니에 상품을 담을 수 있는 기능을 제공해야 할 수도 있습니다. 이 문서에서는 PHP를 사용하여 이 기능을 구현하는 방법을 설명합니다.

쿠키를 사용하여 장바구니 데이터 저장

고객이 로그인 없이 장바구니에 상품을 추가할 수 있는 경우 다양한 고객과 장바구니 데이터를 구별하는 방법을 사용해야 합니다. 일반적인 방법은 쿠키를 사용하여 장바구니 데이터를 저장하는 것입니다. 쿠키는 클라이언트와 서버 간에 전달될 수 있는 클라이언트에 저장된 작은 데이터 조각입니다. 장바구니 데이터를 쿠키에 저장함으로써 고객이 다음에 당사 웹사이트를 방문할 때 데이터를 복원할 수 있으므로 장바구니 데이터의 일관성이 보장됩니다.

이 기능을 수행하기 위해 고객이 "장바구니에 추가" 버튼을 클릭하면 파일이 백그라운드에서 쿠키에 제품 정보를 저장합니다. 구체적인 방법은 다음과 같습니다.

  1. add_to_cart.php 파일에서 먼저 장바구니에 담을 제품 ID와 수량을 GET 또는 POST 방식으로 얻어옵니다.
  2. 그런 다음 PHP의 $_SESSION 변수를 통해 현재 장바구니 데이터를 가져옵니다. 특정 상황에서는 $_SESSION 변수가 유효하지 않게 될 수 있으므로 이에 대한 일부 감지 및 처리가 필요합니다.
  3. 장바구니 데이터를 저장할 배열을 만듭니다(예: $cart = array()).
  4. $_SESSION에 장바구니 데이터가 이미 존재하는 경우 $cart 배열에 복사하세요.
  5. 현재 상품이 이미 장바구니에 담겨 있는지 확인하세요. 그렇다면 장바구니에 있는 해당 품목의 수량을 늘리십시오. 그렇지 않으면 장바구니에 새 품목을 추가하십시오.
  6. 다음번에 사용자의 장바구니 데이터를 검색할 때 장바구니 데이터를 쿠키에 저장하세요.
  7. 다음 사용을 위해 총 장바구니 수량, 가격 등의 데이터를 $_SESSION에 저장하세요.

코드 예:

<?php
session_start();
$product_id = $_GET[&#39;product_id&#39;];
$quantity = $_GET[&#39;quantity&#39;];

$cart = array();
if (isset($_SESSION[&#39;cart&#39;])) {
    $cart = $_SESSION[&#39;cart&#39;];
}

if (isset($cart[$product_id])) {
    $cart[$product_id][&#39;quantity&#39;] += $quantity;
} else {
    $cart[$product_id] = array(
        &#39;id&#39; => $product_id,
        'quantity' => $quantity,
        'price' => $price // 商品单价等其他信息可以根据需求添加
    );
}

$_SESSION['cart'] = $cart;
$total_items = count($cart);
$total_price = 0;
foreach ($cart as $item) {
    $total_price += $item['quantity'] * $item['price'];
}
$_SESSION['total_items'] = $total_items;
$_SESSION['total_price'] = $total_price;

setcookie('cart', serialize($cart), time() + 3600 * 24 * 30, '/');
header('Location: cart.php');
?>
로그인 후 복사

JavaScript를 사용하여 장바구니 UI 구현

위 코드에서는 PHP를 사용하여 장바구니 데이터를 조작하고 해당 데이터를 Cookie 및 $_SESSION에 저장합니다. 하지만 우리는 이 데이터를 시각적인 형태로 사용자에게 제시해야 합니다. 이를 위해 JavaScript를 사용하여 장바구니의 사용자 인터페이스를 만들 수 있습니다.

구체적으로 장바구니 페이지에 DOM 노드를 생성하여 현재 장바구니의 수량, 총 가격 및 기타 정보를 표시할 수 있습니다. 그런 다음 장바구니 데이터는 JavaScript 코드를 통해 쿠키나 서버에서 검색되어 사용자에게 제공됩니다. 장바구니 페이지에서는 장바구니 항목 수 늘리기 또는 줄이기, 항목 삭제, 쿠키 및 $_SESSION의 장바구니 데이터 업데이트와 같은 일부 기능을 제공할 수도 있습니다.

코드 예:

function update_cart() {
    var cart = {};
    if (getCookie('cart') != "") {
        cart = JSON.parse(getCookie('cart'));
    }
    var total_items = 0;
    var total_price = 0;
    for (var id in cart) {
        total_items += cart[id]['quantity'];
        total_price += cart[id]['quantity'] * cart[id]['price'];
    }
    document.getElementById('cart-total-items').innerHTML = total_items;
    document.getElementById('cart-total-price').innerHTML = total_price;
}
로그인 후 복사

위 코드에서는 getCookie() 函数从 Cookie 中获取购物车数据。然后,使用一个 for 循环来遍历 cart 개체를 전달하고 장바구니에 있는 모든 항목의 총 수량과 총 가격을 계산합니다. 마지막으로 이 정보를 HTML 페이지로 업데이트하세요.

요약

이 글에서는 PHP와 JavaScript를 사용하여 로그인 없이 장바구니에 상품을 담는 기능을 구현하는 방법을 간략하게 소개합니다. 이 기능은 장바구니 데이터를 쿠키에 저장하는 동시에 JavaScript를 사용하여 장바구니 UI를 생성하고 사용자 상호 작용을 처리함으로써 달성됩니다. 이 기능을 구현하려면 PHP와 JavaScript에 대한 어느 정도의 숙달이 필요하며 XSS 및 CSRF 주입과 같은 일부 보안 문제에도 주의를 기울여야 합니다.

위 내용은 로그인하지 않고 PHP에서 장바구니를 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿