Heim  >  Artikel  >  Backend-Entwicklung  >  So fügen Sie einen Warenkorb in PHP hinzu, ohne sich anzumelden

So fügen Sie einen Warenkorb in PHP hinzu, ohne sich anzumelden

PHPz
PHPzOriginal
2023-04-05 14:38:021126Durchsuche

Im modernen E-Commerce ist der Warenkorb ein wichtiges interaktives Tool, das Kunden dabei helfen kann, Produkte bequemer auszuwählen und zu kaufen. Im Allgemeinen müssen sich Kunden anmelden, bevor sie Artikel zu ihrem Warenkorb hinzufügen. In einigen Fällen müssen wir jedoch möglicherweise eine Funktion bereitstellen, die es ihnen ermöglicht, Artikel zu ihrem Warenkorb hinzuzufügen, ohne sich anzumelden. In diesem Artikel wird erläutert, wie Sie diese Funktionalität mit PHP implementieren.

Verwenden Sie Cookies, um Warenkorbdaten zu speichern

Wenn Kunden Artikel zu ihrem Warenkorb hinzufügen können, ohne sich anzumelden, müssen wir eine Möglichkeit verwenden, verschiedene Kunden und ihre Warenkorbdaten zu unterscheiden. Eine gängige Methode ist die Verwendung von Cookies zur Speicherung von Warenkorbdaten. Ein Cookie ist ein kleines Datenelement, das auf dem Client gespeichert wird und zwischen Client und Server übertragen werden kann. Durch die Speicherung von Warenkorbdaten in Cookies können wir die Daten beim nächsten Besuch eines Kunden auf unserer Website wiederherstellen und so die Konsistenz der Warenkorbdaten sicherstellen.

Um diese Funktion zu erreichen, können wir eine Datei „add_to_cart.php“ erstellen. Wenn der Kunde auf die Schaltfläche „In den Warenkorb“ klickt, speichert die Datei die Produktinformationen im Cookie. Die spezifische Methode ist wie folgt:

  1. In der Datei add_to_cart.php erhalten Sie zunächst die Produkt-ID und die Menge, die dem Warenkorb hinzugefügt werden sollen, über die GET- oder POST-Methode.
  2. Dann erhalten Sie die aktuellen Warenkorbdaten über die PHP-Variable $_SESSION. Unter bestimmten Umständen kann die Variable $_SESSION ungültig werden, daher ist eine Erkennung und Behandlung erforderlich.
  3. Erstellen Sie ein Array zum Speichern von Warenkorbdaten (zum Beispiel: $cart = array()).
  4. Wenn die Warenkorbdaten bereits in $_SESSION vorhanden sind, kopieren Sie sie in das $cart-Array.
  5. Überprüfen Sie, ob sich der aktuelle Artikel bereits im Warenkorb befindet. Wenn ja, erhöhen Sie die Menge des Artikels im Warenkorb. Wenn nicht, legen Sie den neuen Artikel in den Warenkorb.
  6. Speichern Sie die Warenkorbdaten in einem Cookie für den nächsten Abruf der Warenkorbdaten des Benutzers.
  7. Speichern Sie Daten wie die Gesamtmenge des Warenkorbs und den Preis zur späteren Verwendung in $_SESSION.

Codebeispiel:

<?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');
?>

Verwenden Sie JavaScript, um die Warenkorb-Benutzeroberfläche zu implementieren

Im obigen Code verwenden wir PHP, um die Warenkorbdaten zu verwalten und die Daten in Cookie und $_SESSION zu speichern. Aber wir müssen diese Daten den Benutzern auch in visueller Form präsentieren. Dazu können wir mithilfe von JavaScript die Benutzeroberfläche des Warenkorbs erstellen.

Konkret können wir auf der Warenkorbseite einen DOM-Knoten erstellen, um die Menge, den Gesamtpreis und andere Informationen des aktuellen Warenkorbs anzuzeigen. Die Warenkorbdaten werden dann per JavaScript-Code vom Cookie oder Server abgerufen und dem Benutzer präsentiert. Auf der Warenkorbseite können wir auch einige Funktionen bereitstellen, z. B. das Erhöhen oder Verringern der Anzahl der Artikel im Warenkorb, das Löschen eines Artikels und das Aktualisieren der Warenkorbdaten in Cookie und $_SESSION.

Codebeispiel:

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;
}

Im obigen Code übergeben wir das getCookie() 函数从 Cookie 中获取购物车数据。然后,使用一个 for 循环来遍历 cart-Objekt und berechnen die Gesamtmenge und den Gesamtpreis aller Artikel im Warenkorb. Aktualisieren Sie diese Informationen abschließend in die HTML-Seite.

Zusammenfassung

In diesem Artikel wird kurz vorgestellt, wie Sie mithilfe von PHP und JavaScript die Funktion zum Hinzufügen von Artikeln zum Warenkorb ohne Anmeldung implementieren. Diese Funktionalität wird durch die Speicherung der Warenkorbdaten in einem Cookie erreicht, während JavaScript zum Erstellen der Warenkorb-Benutzeroberfläche und zur Abwicklung der Benutzerinteraktion verwendet wird. Die Implementierung dieser Funktion erfordert ein gewisses Maß an Beherrschung von PHP und JavaScript und Sie müssen auch auf einige Sicherheitsaspekte achten, wie z. B. XSS- und CSRF-Injection.

Das obige ist der detaillierte Inhalt vonSo fügen Sie einen Warenkorb in PHP hinzu, ohne sich anzumelden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn