Dan: Thanks very much for the detailed reply. I took most of this code from Welling and Thomson's book "PHP and MySQL Development," (chpt. 25) but I'm trying to modify it to fit my purposes. The html is mostly theirs, and it's not the way I would write it, but it's working on my test machine. I plan to clean it up and do cross-browser testing once the scripts work.
I agree completely that the problem is most likely in the foreach line of the following code. if($save) { foreach($cart as $artID => $value) { if(empty($value)) unset($cart[$artID]); else $cart[$artID] = $$artID; } You asked about the structure of the cart, and here's another problem area. One of the greatest difficulties I've had learning PHP (my first attempt at any scripting/programming language, in case you hadn't noticed), is understanding array structures. The cart is created by the show_cart page when items are added to it. Here's the relevant code (which immediately precedes the "if($save)" snippet sent in the previous message: <?php include ('article_sc_fns.php'); session_start(); if($new) { //new item selected if(!session_is_registered("cart")) { $cart = array(); session_register("cart"); $article_qty = 0; session_register("article_qty"); $total_words = 0; session_register("total_words"); } if($cart[$new]) $cart[$new]++; else $cart[$new] = 1; When the article is added to the shopping cart the variable is passed to the "show_cart" page through the URL ("show_cart.php?new=$artID") The original code was written to allow for changing quantities of items in the cart, which is irrelevant for me, but I've left the code as is because it doesn't seem to interfere with any other code and is necessary for adding items to the cart. I'm checking the cart structure by printing the following code inserted right after the "if($save);" line (is this the best way to check on the contents of an array?) while (list($key,$value) = each($cart)) { print "Cart = $key: $value<BR>"; } This returns "article ID number (an integer) : 1" when new and "article ID : yes" after the save button has been clicked. I tried naming the checkbox "want[$artID]" but as far as I can tell the $want array and the $cart array are two separate entities and none of the code I've tried seems to work on both, even when they have the same key ($artID). For example, when I revised the code you sent earlier to while (list($artID,) = each ($_POST['want'])) $cart[$artID]; it didn't work. Obviously, something else could be interfering. Re: the line of code you thought odd and asked about: else $cart[$artID] = $$artID; I thought it was odd too, and since this is acquired code, I can't explain it. I assumed that it just resets the artID to its original value. I'm afraid this message is way too long, and I apologize if it's too much. I hesitated posting questions in the first place because the interaction of the code seemed fairly complex, but I'm also quite desperate. Once again, many thanks for your patience and attention. Vicki -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php