Each time the POST value is not equal to the list of values ​​specified in the array, it is returned: Undefined Index error, I made an if statement, but it does not work.
Here's the if statement:
if ($products[$_POST['product']] == $_POST['product']) { do everything;} else { echo "This item is not available"; }
EDIT2:
Avoiding the warning will not help to see the current situation, because I am dealing with several factors, for example, the list of items in the shopping cart, if an invalid product is not deleted, it will be added to the shopping list session.
This is the full script:
<?php session_start(); //Getting the list $_SESSION['list'] = isset($_SESSION['list']) ? $_SESSION['list'] : array(); //stock $products = array( 'Pineaple' => 500, 'Banana' => 50, 'Mango' => 150, 'Milk' => 500, 'Coffe' => 1200, 'Butter' => 300, 'Bread' => 450, 'Juice' => 780, 'Peanuts' => 800, 'Yogurt' => 450, 'Beer' => 550, 'Wine' => 2500, ); if( isset($_POST['product']) ){ //Saving the stuff $new_item = array( 'item' => $_POST['product'], 'quantity' => $_POST['quantity'], 'code' => $_POST['code'], 'price' => $products[$_POST['product']] * $_POST['quantity'], ); $new_product = true; foreach($_SESSION['list'] as $key => $item) { if ($item['item'] == $new_item['item']) { $_SESSION['list'][$key]['quantity'] += $new_item['quantity']; $_SESSION['list'][$key]['price'] = $products[$new_item['item']] * $new_item['quantity']; $new_product = false; } } if ($new_product) { $_SESSION['list'][] = $new_item; } /*if ($new_item['item'] != $products[$new_item['item']]) { echo "This item is not available";}*/ //listing echo "<b>SHOPPING LIST</b></br>"; foreach($_SESSION['list'] as $key => $item) { echo 'Product .'. $key. ' '. $item['item'], ' ', $item['quantity'], ' units: ', $item['price']. '<br />'; } } else { echo "This item is not available"; } echo "</br> <a href='index.html'>Return to index</a> </br>"; //Printing session var_dump($_SESSION); session_destroy(); ?>
source share