I've read about this before in spots. (like the bug report system) I've got a fairly high traffic server. (30-50K uniques per day)
For the most part, everything works ok. We get plenty of orders (between 70-90 a day). However, I also get complaints from people who say they keep losing their cart. To try and track down what was going on. I started storing some fairly simple stats from the site. Here is an example of one sent to me via e-mail from my order.html page. Person's cart failed? Referring url is: http://www.t-shirtking.com/cart.php User Agent is: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; DigExt; Roadrunner) Cookie output: c93856925c2ed796d3560d3729ebeb60 Other Session: http://www.t-shirtking.com/catalog/136-00813/c93856925c2ed796d3560d3729ebeb6 0 Other Session: addProduct new session is: c93856925c2ed796d3560d3729ebeb60 A quick description is as follows. If they come to the order.html page and the script doesn't see the $_SESSION["cart"] variable, it sends me this message. It sends me the referring url. (a lot of people hit checkout instead of add to cart for some odd reason, so this is proof that this particular person went through the cart) Then I grab the user agent to try and narrow down the browsers with problems. Then I see if the session id is in a cookie. Then, by looking at their session variable, I can see that they went to cart.php via the given url. (I store the http_refferer as a session variable on the cart.php page) Then, to prove to myself that the cart function ran, I store the fact that the person came from the catalog url and did indeed pass the cart command addProduct (via the form post data). As a last test, I send myself the session_id that order.html is using (to make sure the session wasn't restarted) So, what can I gather from this....I only give one example. However, I get about 10 of these messages a day. I'm sure there are even more than that considering that some people may give up when they notice their cart isn't holding their products and don't bother going to order.html. As you can tell from above, it is clear that the session id is indeed intact. Also, I'm actually able to pull information out of the session that was stored on a previous page. (the addProduct command and the url stored in the session by the cart.php page) However, the cart variable, which is an object, is no longer there. (it is a simple object btw. Just an object with an array in it and a few member functions) I thought perhaps using the default php session manager, that it was having problems. So I recently switched it to a mysql based manager. (just using the session_save_handler). I still get the issue though. Therefore, I cancel out blaming php's file storage method. Where is my cart object going? It happens only randomly. It also happens only to users of IE. (though 90% of our traffic are IE users) It happens to IE6.0, IE5.5, IE5.0. It also happens at any time during the day (meaning, high traffic times and low traffic times) I have also been able to immediately look at my sessions table in the database when I receive a message like the above. Sure enough, the session is there...it has data...just no cart. Of course, the biggest bitch of all....I can't reproduce the bug to save my life. I've tested on 10 different machines using a variety of Windows versions and IE versions. I've tested the cart well over 100 times. Yet, I never seem to be able to break it. I even try to add the product that I know the person who did lose the cart was trying to buy. I'm pretty sure I'm losing orders because of this. I can't imagine how many people are having issues. I'm in desperate help as my client would love me if I could fix the number of orders per day to get back to 100. (he switched to Miva a couple months ago and the dedicated Sun Solaris box choked to death due to high server load. around 50-60 according to top.) So we came in and very quickly implemented a php based solution. Of course, it is working great except for this. As a test, I just recently installed php4.3pre2 to see if it fixed the issue. alas, it did not. I was previously using 4.2.3. HELP!. Thanks, Josh Bauguss -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php