Jump to content

Internet Explorer 11 problem


bkessler91

Recommended Posts

I've had four customers (all using Internet Explorer 11) say that when they are at the "index.php?_a=confirm" and click Checkout, they are returned to  "index.php?_a=basket" with their basket empty.

 

I have asked two of them to try on Chrome or Firefox and they have both been successful placing orders.

 

Still waiting to hear back from the other two, if I do at all...

Link to comment
Share on other sites

  • 2 weeks later...

I've been playing around with IE11 and have had these experiences.

 

I have filled up my basket (once) successfully, but when I went to remove an item from the basket, the basket emptied entirely.

 

After this happened, I tried to fill up the cart again:

I added "Item A" successfully.  Right after I went to add "Item B".... "Item A" was removed and replaced with "Item B"

Then tried to add "Item A" again, resulted in "Item B" being removed and "Item A" was the only item in the basket.

So its removing the existing product, and replacing it with the most recently added item.

Link to comment
Share on other sites

With IE10+ (maybe even IE9), there is a diagnostic mode the browser can show. On Windows, it is activated by pressing F12 on the keyboard.

 

With the diagnostic window activated, please determine if the cookie belonging to your store's domain name is accurate and consistent. That is, watch the header traffic the browser is receiving and sending. Make sure the PHPSESSID cookie is present in all requests and responses, and that it has the same value throughout.

Link to comment
Share on other sites

Let's take a moment to check on something. In admin, Store Settings, Features tab, Google Analytics field, please verify that you have nothing more than an ID code here. I am seeing something much more than just an ID code.

 

Also, in the template file main.php, please take note if there is a <br> between the <!DOCTYPE html> line and the <html ... > line. If there is, remove it.

 

Ok, you have found the F12 console. Somewhere in that console, you can see the headers for each request and response. Please find that display.

Link to comment
Share on other sites

(I just installed IE11 on a throw-away computer...)

 

I visited the homepage and the pages of two products. On the second and third page request, IE11 did not send back the PHPSESSID cookie that was given to me on the first page response. Thus, I got a new cookie on each page response.

 

Hopefully, there will be something we can find regarding why IE11 won't send back cookies.

 

My scan through 50 hits from Google about "IE11 cookie issues" concludes with IE11 being a broke POS. Too many people seem to think that IE11 is not broke, but rather the situation is that hundreds of web-based applications need to be upgraded to handle IE11 and are screaming at the developers of these applications to get this situation fixed NOW!

 

It's not the app developer's fault.

 

IE11 won't post in forum apps. IE11 will suddenly cause to vanish large chunks of text in text entry fields. IE11 will not send back session cookies.

 

In your site, I do see that IE11 sends back cookies that have no expiration date -- probably cookies created from javascript code:

wcsid, _oklv, _okbk, _ok, hblid, olfsk, and __atuvc. Some of these are google analytics cookies.

 

But cookies received from the web server in the response headers are not returned.

 

I have no idea how an app developer could possibly manage to convince IE11 to behave like any other browser.

Link to comment
Share on other sites

You might try this:

 

In an attempt to fix difficulties with customers who use Internet Explorer, CC528 unfortunately re-introduced a bug that allows for a "session" to expire after 60 minutes of receiving the initial page from your site. That is, if I were to visit your site today, at 9am, and log-in, 60 minutes later, at 10am, no matter what I was doing, I would "lose" my session and get logged-out.

The original bug fix made it such that for every page delivered from your store, CubeCart would send an updated expiration time to the current cookie. Thus, as long as I had made a page request within 60 minutes of the prior page request, my session would not expire.

To fix CC528, please do this:

In the file /classes/session.class.php, line 522:

Was:
return strstr($_SERVER['HTTP_USER_AGENT'], 'Trident') ? 'IEX' : $_SERVER['HTTP_USER_AGENT'];
Now:
if(strpos($_SERVER['HTTP_USER_AGENT'], 'Trident')) { return 'IEX'; } else { return $_SERVER['HTTP_USER_AGENT']; }

Line 602:
Was:
if($this->_http_user_agent()=='MSIE') {
Now:
if($this->_http_user_agent() !== 'IEX') {
With this, CubeCart will not try to set a cookie. So, I don't know how that will work.

 

Also, I see two PHPSESSID cookies. So I think PHP is actually configured to send a cookie (in addition to CubeCart sending one).

Link to comment
Share on other sites

I am currently running 527

 

I have never upgraded on my own before, because of modifications and I have a lot at stake if something goes wrong.

I was going to hold off on hiring my tech until 529 was released, because that was said to be coming out '>soon'.... a month ago.  I understand the delay.
 


 In the file /classes/session.class.php
Line 595 reads

 

if(!strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')) {
$this->set_cookie(session_name(),session_id(),time()+$this->_session_timeout);

 

 

Link to comment
Share on other sites

In /classes/session.class.php, just below line 516, (a comment with the word Private), add:

  /**
   * User agent
   */
  private function _http_user_agent() {
    if(strpos($_SERVER['HTTP_USER_AGENT'], 'Trident')) { return 'IEX'; } else { return $_SERVER['HTTP_USER_AGENT']; }
  }
Line 595:
Was:
if(!strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')) {
Now:
if($this->_http_user_agent() !== 'IEX') {

I have not experimented to see what happens now.

 

In admin, PHP Info (may be Server Info), in the Session table, find the session.auto_start value. The local value should be Off. I mention this because your store is sending two cookies, named the same with the same value, but different Expires data: one says "At end of session", the other has a date/time ten hours in the future.

Link to comment
Share on other sites

Let's take a moment to check on something. In admin, Store Settings, Features tab, Google Analytics field, please verify that you have nothing more than an ID code here. I am seeing something much more than just an ID code.

 

Also, in the template file main.php, please take note if there is a <br> between the <!DOCTYPE html> line and the <html ... > line. If there is, remove it.

 

Ok, you have found the F12 console. Somewhere in that console, you can see the headers for each request and response. Please find that display.

 

I have removed the <br> in both spots and... yeah... what the hell what that in my Google Analytics box?  

 

After I have fixed these, I can not reproduce the error in IE11. (I've tested on two machines)

 

 

NEXT:

 

In /classes/session.class.php, just below line 516, (a comment with the word Private), add:

  /**
   * User agent
   */
  private function _http_user_agent() {
    if(strpos($_SERVER['HTTP_USER_AGENT'], 'Trident')) { return 'IEX'; } else { return $_SERVER['HTTP_USER_AGENT']; }
  }
Line 595:
Was:
if(!strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')) {
Now:
if($this->_http_user_agent() !== 'IEX') {

I have not experimented to see what happens now.

 

In admin, PHP Info (may be Server Info), in the Session table, find the session.auto_start value. The local value should be Off. I mention this because your store is sending two cookies, named the same with the same value, but different Expires data: one says "At end of session", the other has a date/time ten hours in the future.

 

I have not tried this, because 5.2.9 just came out.  I am going to upgrade and keep the thread updated.

 

Thanks for all the help!

 

-BK

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...