// Example usage addToCart(1, "Sample Product", 19.99, 2);
| Pitfall | Low-Quality Approach | High-Quality Solution | | :--- | :--- | :--- | | | Accept num=-5 | Clamp values using max(1, min(999, $num)) | | Stock overselling | No stock check | Validate against stock_quantity BEFORE adding | | Session flooding | Store product objects with full descriptions | Store only ID + quantity; fetch fresh data | | CSRF attacks | No token | Require validation for all state-changing requests | | XSS in cart | Output product name directly | Apply htmlspecialchars() everywhere | | Concurrent adds | Overwrites quantity | Merge quantities: $new_total = $existing + $new |
To view cart contents:
// Example usage addToCart(1, "Sample Product", 19.99, 2);
| Pitfall | Low-Quality Approach | High-Quality Solution | | :--- | :--- | :--- | | | Accept num=-5 | Clamp values using max(1, min(999, $num)) | | Stock overselling | No stock check | Validate against stock_quantity BEFORE adding | | Session flooding | Store product objects with full descriptions | Store only ID + quantity; fetch fresh data | | CSRF attacks | No token | Require validation for all state-changing requests | | XSS in cart | Output product name directly | Apply htmlspecialchars() everywhere | | Concurrent adds | Overwrites quantity | Merge quantities: $new_total = $existing + $new | addcartphp num high quality
To view cart contents: