What best practices should be followed when transitioning from using JavaScript to PHP sessions for managing shopping cart data in an online shop?

When transitioning from using JavaScript to PHP sessions for managing shopping cart data in an online shop, it is important to ensure that the data is securely stored on the server side to prevent manipulation by users. Best practices include sanitizing input data, validating user permissions, and encrypting sensitive information.

<?php
session_start();

// Add item to shopping cart
if(isset($_POST['product_id']) && isset($_POST['quantity'])) {
    $product_id = $_POST['product_id'];
    $quantity = $_POST['quantity'];

    // Sanitize input data
    $product_id = filter_var($product_id, FILTER_SANITIZE_NUMBER_INT);
    $quantity = filter_var($quantity, FILTER_SANITIZE_NUMBER_INT);

    // Validate user permissions (optional)
    // Add additional checks here if needed

    // Encrypt sensitive information (optional)
    // Add encryption logic here if needed

    // Add item to shopping cart
    $_SESSION['cart'][$product_id] = $quantity;
}

// Remove item from shopping cart
if(isset($_POST['remove_product_id'])) {
    $remove_product_id = $_POST['remove_product_id'];

    // Sanitize input data
    $remove_product_id = filter_var($remove_product_id, FILTER_SANITIZE_NUMBER_INT);

    // Validate user permissions (optional)
    // Add additional checks here if needed

    // Encrypt sensitive information (optional)
    // Add encryption logic here if needed

    // Remove item from shopping cart
    unset($_SESSION['cart'][$remove_product_id]);
}
?>