473,396 Members | 1,900 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

How to handle case-sensitivity of cookie?

Hello all,

I'm still a bit new with JavaScript, and I hope the guru here can shed
some light for me. It's regarding handling cookie and the
case-sensitive nature of JavaScript itself.

My problem is how do I handle the "path" parameter in cookie.

First, the sequence start at
http://www.testServer1.com/TestApp/page1.htm, and a cookie is set at
that page.

Then, the following page, somehow change the case on the path, such as
http://www.testServer1.com/testApp/page2.htm. Now in this page, I
cannot access to the cookie that's set at the first initial page.

Is there anyway to handle this kind of scenario? I hope I'm explaining
the problem correctly.

Thank you in advance.
Kelvin

Aug 21 '06 #1
6 2673
Why does the TestApp directory have to change caps?
kelvlam wrote:
Hello all,

I'm still a bit new with JavaScript, and I hope the guru here can shed
some light for me. It's regarding handling cookie and the
case-sensitive nature of JavaScript itself.

My problem is how do I handle the "path" parameter in cookie.

First, the sequence start at
http://www.testServer1.com/TestApp/page1.htm, and a cookie is set at
that page.

Then, the following page, somehow change the case on the path, such as
http://www.testServer1.com/testApp/page2.htm. Now in this page, I
cannot access to the cookie that's set at the first initial page.

Is there anyway to handle this kind of scenario? I hope I'm explaining
the problem correctly.

Thank you in advance.
Kelvin
Aug 21 '06 #2
kelvlam said the following on 8/21/2006 2:20 PM:
Hello all,

I'm still a bit new with JavaScript, and I hope the guru here can shed
some light for me. It's regarding handling cookie and the
case-sensitive nature of JavaScript itself.

My problem is how do I handle the "path" parameter in cookie.

First, the sequence start at
http://www.testServer1.com/TestApp/page1.htm, and a cookie is set at
that page.

Then, the following page, somehow change the case on the path, such as
http://www.testServer1.com/testApp/page2.htm. Now in this page, I
cannot access to the cookie that's set at the first initial page.

Is there anyway to handle this kind of scenario? I hope I'm explaining
the problem correctly.
Set it to lower case, then test it.

cookieString.toLowerCase()

--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Aug 21 '06 #3
Randy Webb wrote:
kelvlam said the following on 8/21/2006 2:20 PM:
Hello all,

I'm still a bit new with JavaScript, and I hope the guru here can shed
some light for me. It's regarding handling cookie and the
case-sensitive nature of JavaScript itself.

My problem is how do I handle the "path" parameter in cookie.

First, the sequence start at
http://www.testServer1.com/TestApp/page1.htm, and a cookie is set at
that page.

Then, the following page, somehow change the case on the path, such as
http://www.testServer1.com/testApp/page2.htm. Now in this page, I
cannot access to the cookie that's set at the first initial page.

Is there anyway to handle this kind of scenario? I hope I'm explaining
the problem correctly.

Set it to lower case, then test it.

cookieString.toLowerCase()

--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
So should I be doing toLowercase both when setting and getting?

i.e. document.cookie = cookieStr.toLowerCase();

and for my get, I should just set the search parameter to
param.toLowerCase() and then do the string comparison?

I want to elaborate a little bit more of why I'm asking this question
also, and give some precious description of my problem.

The problem is I have no control of how a client browser access my web
site. They could be coming in as "http://www.testAbc.com/site1", or
they can be coming in as "http://www.testAbc.com/SiTe1". The site's
Index.htm page then redirect the incoming request, to a internal ISAPI
call on the IIS server.

For example when a client come in from the browser as
"http://www.testAbc.com/SiTe1", all cookies created will be only be
accessible for pages that contain "http://www.testAbc.com/SiTe1" in the
window.location property, correct? Since all my pages are generated
dynamically by the ISAPI DLL, the window.location property could be
change without my notice... and if the page somehow got
"http://www.testAbc.com/site1" stored in the window.location property,
then I won't be able to access the cookie that I intended to.

Sorry for my very broken English. It's really hard to try to explain
technical detail when I have still a fairly limited understanding of
JavaScript. I hope I didn't confuse the original problem...

Much appreciate for the help in advance.

--
Kelvin

Aug 21 '06 #4
kelvlam wrote:
Randy Webb wrote:
kelvlam said the following on 8/21/2006 2:20 PM:
Hello all,
>
I'm still a bit new with JavaScript, and I hope the guru here can shed
some light for me. It's regarding handling cookie and the
case-sensitive nature of JavaScript itself.
>
My problem is how do I handle the "path" parameter in cookie.
>
First, the sequence start at
http://www.testServer1.com/TestApp/page1.htm, and a cookie is set at
that page.
>
Then, the following page, somehow change the case on the path, such as
http://www.testServer1.com/testApp/page2.htm. Now in this page, I
cannot access to the cookie that's set at the first initial page.
>
Is there anyway to handle this kind of scenario? I hope I'm explaining
the problem correctly.
Set it to lower case, then test it.

cookieString.toLowerCase()

--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/

So should I be doing toLowercase both when setting and getting?

i.e. document.cookie = cookieStr.toLowerCase();

and for my get, I should just set the search parameter to
param.toLowerCase() and then do the string comparison?

I want to elaborate a little bit more of why I'm asking this question
also, and give some precious description of my problem.

The problem is I have no control of how a client browser access my web
site. They could be coming in as "http://www.testAbc.com/site1", or
they can be coming in as "http://www.testAbc.com/SiTe1". The site's
Index.htm page then redirect the incoming request, to a internal ISAPI
call on the IIS server.

For example when a client come in from the browser as
"http://www.testAbc.com/SiTe1", all cookies created will be only be
accessible for pages that contain "http://www.testAbc.com/SiTe1" in the
window.location property, correct? Since all my pages are generated
dynamically by the ISAPI DLL, the window.location property could be
change without my notice... and if the page somehow got
"http://www.testAbc.com/site1" stored in the window.location property,
then I won't be able to access the cookie that I intended to.

Sorry for my very broken English. It's really hard to try to explain
technical detail when I have still a fairly limited understanding of
JavaScript. I hope I didn't confuse the original problem...

Much appreciate for the help in advance.

--
Kelvin
I would like to point out, I've been using these common utilities
function as well, for handling my cookie within the pages. Maybe I can
tweak these utility functions to solve my problem?

<pre>
/**
* Sets a Cookie with the given name and value.
*
* name Name of the cookie
* value Value of the cookie
* [expires] Expiration date of the cookie (default: end of current
session)
* [path] Path where the cookie is valid (default: path of calling
document)
* [domain] Domain where the cookie is valid (default: domain of
calling document)
* [secure] Boolean value indicating if the cookie transmission
requires a secure transmission
*/
function setCookie(name, value, expires, path, domain, secure) {
var cookieStr;
cookieStr = name + "=" + escape(value);
cookieStr += ((expires) ? "; expires=" + expires.toGMTString() : "");
cookieStr += ((path) ? "; path=" + path : "");
cookieStr += ((domain) ? "; domain=" + domain : "");
cookieStr += ((secure) ? "; secure" : "");
document.cookie = cookieStr;
}
/**
* Gets the value of the specified cookie.
*
* name Name of the desired cookie.
*
* Returns a string containing value of specified cookie,
* or null if cookie does not exist.
*/
function getCookie(name) {
var dc = document.cookie;
var prefix = name.toLowerCase() + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else {
begin += 2;
}
var end = document.cookie.indexOf(";", begin);
if (end == -1) {
end = dc.length;
}
return unescape(dc.substring(begin + prefix.length, end));
}
/**
* Deletes the specified cookie.
*
* name name of the cookie
* [path] path of the cookie (must be same as path used to create
cookie)
* [domain] domain of the cookie (must be same as domain used to create
cookie)
*/
function deleteCookie(name, path, domain) {
if (getCookie(name)) {
var cookieStr;
cookieStr = name.toLowerCase() + "=";
cookieStr += ((path) ? "; path=" + path : ""); //defaultPath);
cookieStr += ((domain) ? "; domain=" + domain : "");
cookieStr += "; expires=Thu, 01-Jan-70 00:00:01 GMT";
document.cookie = cookieStr;
}
}
</pre>

Aug 21 '06 #5
Good info. I will be in touch.
kelvlam wrote:
kelvlam wrote:
Randy Webb wrote:
kelvlam said the following on 8/21/2006 2:20 PM:
Hello all,

I'm still a bit new with JavaScript, and I hope the guru here can shed
some light for me. It's regarding handling cookie and the
case-sensitive nature of JavaScript itself.

My problem is how do I handle the "path" parameter in cookie.

First, the sequence start at
http://www.testServer1.com/TestApp/page1.htm, and a cookie is set at
that page.

Then, the following page, somehow change the case on the path, such as
http://www.testServer1.com/testApp/page2.htm. Now in this page, I
cannot access to the cookie that's set at the first initial page.

Is there anyway to handle this kind of scenario? I hope I'm explaining
the problem correctly.
>
Set it to lower case, then test it.
>
cookieString.toLowerCase()
>
--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
So should I be doing toLowercase both when setting and getting?

i.e. document.cookie = cookieStr.toLowerCase();

and for my get, I should just set the search parameter to
param.toLowerCase() and then do the string comparison?

I want to elaborate a little bit more of why I'm asking this question
also, and give some precious description of my problem.

The problem is I have no control of how a client browser access my web
site. They could be coming in as "http://www.testAbc.com/site1", or
they can be coming in as "http://www.testAbc.com/SiTe1". The site's
Index.htm page then redirect the incoming request, to a internal ISAPI
call on the IIS server.

For example when a client come in from the browser as
"http://www.testAbc.com/SiTe1", all cookies created will be only be
accessible for pages that contain "http://www.testAbc.com/SiTe1" in the
window.location property, correct? Since all my pages are generated
dynamically by the ISAPI DLL, the window.location property could be
change without my notice... and if the page somehow got
"http://www.testAbc.com/site1" stored in the window.location property,
then I won't be able to access the cookie that I intended to.

Sorry for my very broken English. It's really hard to try to explain
technical detail when I have still a fairly limited understanding of
JavaScript. I hope I didn't confuse the original problem...

Much appreciate for the help in advance.

--
Kelvin

I would like to point out, I've been using these common utilities
function as well, for handling my cookie within the pages. Maybe I can
tweak these utility functions to solve my problem?

<pre>
/**
* Sets a Cookie with the given name and value.
*
* name Name of the cookie
* value Value of the cookie
* [expires] Expiration date of the cookie (default: end of current
session)
* [path] Path where the cookie is valid (default: path of calling
document)
* [domain] Domain where the cookie is valid (default: domain of
calling document)
* [secure] Boolean value indicating if the cookie transmission
requires a secure transmission
*/
function setCookie(name, value, expires, path, domain, secure) {
var cookieStr;
cookieStr = name + "=" + escape(value);
cookieStr += ((expires) ? "; expires=" + expires.toGMTString() : "");
cookieStr += ((path) ? "; path=" + path : "");
cookieStr += ((domain) ? "; domain=" + domain : "");
cookieStr += ((secure) ? "; secure" : "");
document.cookie = cookieStr;
}
/**
* Gets the value of the specified cookie.
*
* name Name of the desired cookie.
*
* Returns a string containing value of specified cookie,
* or null if cookie does not exist.
*/
function getCookie(name) {
var dc = document.cookie;
var prefix = name.toLowerCase() + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else {
begin += 2;
}
var end = document.cookie.indexOf(";", begin);
if (end == -1) {
end = dc.length;
}
return unescape(dc.substring(begin + prefix.length, end));
}
/**
* Deletes the specified cookie.
*
* name name of the cookie
* [path] path of the cookie (must be same as path used to create
cookie)
* [domain] domain of the cookie (must be same as domain used to create
cookie)
*/
function deleteCookie(name, path, domain) {
if (getCookie(name)) {
var cookieStr;
cookieStr = name.toLowerCase() + "=";
cookieStr += ((path) ? "; path=" + path : ""); //defaultPath);
cookieStr += ((domain) ? "; domain=" + domain : "");
cookieStr += "; expires=Thu, 01-Jan-70 00:00:01 GMT";
document.cookie = cookieStr;
}
}
</pre>
Sep 7 '06 #6

kelvlam wrote:
kelvlam wrote:
Randy Webb wrote:
kelvlam said the following on 8/21/2006 2:20 PM:
Hello all,

I'm still a bit new with JavaScript, and I hope the guru here can shed
some light for me. It's regarding handling cookie and the
case-sensitive nature of JavaScript itself.

My problem is how do I handle the "path" parameter in cookie.

First, the sequence start at
http://www.testServer1.com/TestApp/page1.htm, and a cookie is set at
that page.

Then, the following page, somehow change the case on the path, such as
http://www.testServer1.com/testApp/page2.htm. Now in this page, I
cannot access to the cookie that's set at the first initial page.

Is there anyway to handle this kind of scenario? I hope I'm explaining
the problem correctly.
>
Set it to lower case, then test it.
>
cookieString.toLowerCase()
>
--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
So should I be doing toLowercase both when setting and getting?

i.e. document.cookie = cookieStr.toLowerCase();

and for my get, I should just set the search parameter to
param.toLowerCase() and then do the string comparison?

I want to elaborate a little bit more of why I'm asking this question
also, and give some precious description of my problem.

The problem is I have no control of how a client browser access my web
site. They could be coming in as "http://www.testAbc.com/site1", or
they can be coming in as "http://www.testAbc.com/SiTe1". The site's
Index.htm page then redirect the incoming request, to a internal ISAPI
call on the IIS server.

For example when a client come in from the browser as
"http://www.testAbc.com/SiTe1", all cookies created will be only be
accessible for pages that contain "http://www.testAbc.com/SiTe1" in the
window.location property, correct? Since all my pages are generated
dynamically by the ISAPI DLL, the window.location property could be
change without my notice... and if the page somehow got
"http://www.testAbc.com/site1" stored in the window.location property,
then I won't be able to access the cookie that I intended to.

Sorry for my very broken English. It's really hard to try to explain
technical detail when I have still a fairly limited understanding of
JavaScript. I hope I didn't confuse the original problem...

Much appreciate for the help in advance.

--
Kelvin

I would like to point out, I've been using these common utilities
function as well, for handling my cookie within the pages. Maybe I can
tweak these utility functions to solve my problem?

<pre>
/**
* Sets a Cookie with the given name and value.
*
* name Name of the cookie
* value Value of the cookie
* [expires] Expiration date of the cookie (default: end of current
session)
* [path] Path where the cookie is valid (default: path of calling
document)
* [domain] Domain where the cookie is valid (default: domain of
calling document)
* [secure] Boolean value indicating if the cookie transmission
requires a secure transmission
*/
function setCookie(name, value, expires, path, domain, secure) {
var cookieStr;
cookieStr = name + "=" + escape(value);
cookieStr += ((expires) ? "; expires=" + expires.toGMTString() : "");
cookieStr += ((path) ? "; path=" + path : "");
cookieStr += ((domain) ? "; domain=" + domain : "");
cookieStr += ((secure) ? "; secure" : "");
document.cookie = cookieStr;
}
/**
* Gets the value of the specified cookie.
*
* name Name of the desired cookie.
*
* Returns a string containing value of specified cookie,
* or null if cookie does not exist.
*/
function getCookie(name) {
var dc = document.cookie;
var prefix = name.toLowerCase() + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else {
begin += 2;
}
var end = document.cookie.indexOf(";", begin);
if (end == -1) {
end = dc.length;
}
return unescape(dc.substring(begin + prefix.length, end));
}
/**
* Deletes the specified cookie.
*
* name name of the cookie
* [path] path of the cookie (must be same as path used to create
cookie)
* [domain] domain of the cookie (must be same as domain used to create
cookie)
*/
function deleteCookie(name, path, domain) {
if (getCookie(name)) {
var cookieStr;
cookieStr = name.toLowerCase() + "=";
cookieStr += ((path) ? "; path=" + path : ""); //defaultPath);
cookieStr += ((domain) ? "; domain=" + domain : "");
cookieStr += "; expires=Thu, 01-Jan-70 00:00:01 GMT";
document.cookie = cookieStr;
}
}
</pre>
Sep 7 '06 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
by: R.Wieser | last post by:
Hello All, I'm trying to get a "Virtual Listbox" to work. I've currently got a form, and used CreateWindowExA to create a ListBox with the LBS_OWNERDRAWFIXED and LBS_NODATA flags on it. I've...
15
by: Tim Clacy | last post by:
Please illuminate; what operator of class 'Event' will get matched for these two cases : Event ev1; Event ev2; // Case 1 // if (ev1) ;
12
by: Ken Brubaker | last post by:
I am using DB2 8.5 FP5 on Windows 2000 Server and have noticed what appears to be a handle leak. When I execute a DB2 connect statement in a command window, followed by a DB2 connect reset...
14
by: Abhi | last post by:
FYI: This message is for the benefit of MS Access Community. I found that this prblem has been encounterd by many but there is hardly any place where a complete solution is posted. So I thought...
6
by: Leandro Berti via DotNetMonster.com | last post by:
Hi All, I wrote a code to do serial communication with an equipament. When i use the code outside of threaded class it seens work properly, but when i put inside a class and execute a thread in...
2
by: Schorschi | last post by:
Can't seemd to get ReadFile API to work! Returns invalid handle error? =========================================================================== Ok, the visual basic gurus, help! The...
4
by: SamSpade | last post by:
If I have a class that inherits from, say RichTextBox and in the derived class I refer to Handle, does it refer to the RichTextBox class or the derived class? I'm wondering if the derived class...
2
by: Gary Wessle | last post by:
Hi I need help organizing this program in the right way. I included the code below which compiles and runs and gives the desired effect to a certain point, but I don't know what the next step...
6
by: Liming | last post by:
Hi, In a typical 3 tier model (view layer, busines layer and data access layer) where do you handle your exceptions? do you let it buble up all the way to the .aspx pages or do you handle it in...
2
weaknessforcats
by: weaknessforcats | last post by:
Handle Classes Handle classes, also called Envelope or Cheshire Cat classes, are part of the Bridge design pattern. The objective of the Bridge pattern is to separate the abstraction from the...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.