Technical Quirks Unrelated to zeroCode

 
This document lists out some technical quirks that you may encounter during the usage of the zeroCode Design Environment or in zeroCode generated applications. However, these have nothing to do with zeroCode perse. These are problems caused by external factors like the browser used or Javascript  or issues with Linux etc. 
JavaScript calendar  
The calendar display in a zeroCode generated site has been modified to take care of a Javascript issue. Earlier, the calendar display had been implemented using a ‘div’ element that took care of the positioning of the calendar. However, this had a flaw. It caused the calendar to be obscured if there was an intersecting dropdown list on the web page. So, the only way to effectively use it was to drag the calendar to a clear space, where you would be able to discern the dates and then do the selection. Now that code has been replaced by a version that uses the 'iframe' element. Now the calendar is no longer obscured by any intersecting combo box. As a consequence, the drag option on the calendar has been done away with since it is no longer necessary.
Obscure Logging out
While working on zDE generated applications, you may have come across obscure, non-reproducible situations where the zeroCode application suddenly logs you out even though there isn't a timeout. This typically happened while using the IE browser. This was because IE could not distinguish between multiple web servers on the same machine running on different port numbers. In other words, if one web server on a machine sets a cookie to a certain value, IE submits the same cookie to all web servers on that machine. The browser always used to get confused between the JSESSIONID cookies sent by different sites running on different ports on the same server. The irritating result is that you would lose your session when you switch from one site to another.

So, if you used zDE and a built site on the same box, this used to cause problems. When you log out of zDE and log back in, zDE would give you a new session id in the cookie, and IE would submit the modified session id to the other sites on the same server. Since this wasn't valid on the generated site server, you would get logged out. 

Neither Netscape nor Mozilla suffer this problem because they both identify cookies with the “server- port-number” pair. 

zeroCode now provides you a solution for this. The zDE and the zeroCode application no longer determine their session id using the JSESSIONID cookie sent by the servlet runner. Instead, the zDE uses a cookie named zeroCode.zde, while each zeroCode application uses a cookie named zeroCode.siteName. 
This change includes an additional benefit. The generated cookie value that the zeroCode applications use is now checked for hijacking. It contains an encoding of (among other things) the IP address of the machine originating the session, so that if someone steals a valid cookie from one machine and attempts to use it from another, the attempt will fail.