Click to See Complete Forum and Search --> : Cookies - Recalling


bigal
09-01-2003, 03:36 PM
I have received nothing but Helpful replys and advice here! So I have decided to post My next challanging Problem :confused:


Save the attached file as htm and open, enter a name and you get hello <Name>

Thats all well and good, it remembers your name.

But how would you put the name in the another HTML document, EXAMPLE.

Page opens - name entered - page says hello <Name>
Link downloads clicked. Page says, Hello <Name>
blablabla <name> blabla b.......<name>


In other words, how can you utilise just the recall part of the script, or do i have to insert the whole 5kb script wherever i want the name to be displayed?

Problem #1:
If cookies are disabled they will get hello null :(
Problem #2
If the whole script is in all over a page 6 times, they will have to enter there name 6 times if cookies are diabled or get null!

prov #3 Away from that (who cares if the end user has cookies disabled - ill ask them to enable it)the main prob is SIZE!!!! its a six k script, can i just utalise the recall part.

Thank,
BiG Al!
:cool:

Khalid Ali
09-01-2003, 03:46 PM
in your cookie script there will be the part where cookie is read,thats where,you put that part in all of the pages and you will see helllo name in all of the pages.

bigal
09-01-2003, 04:29 PM
Yes agreed, but which bit?

script:



<script>
<!--
// Copyright (c) 1996-1997 Tomer Shiran. All rights reserved.
// Permission given to use the script provided that this notice remains as is.
// Additional scripts can be found at http://www.geocities.com/~yehuda/

// Boolean variable specified if alert should be displayed if cookie exceeds 4KB
var caution = false

// name - name of the cookie
// value - value of the cookie
// [expires] - expiration date of the cookie (defaults to end of current session)
// [path] - path for which the cookie is valid (defaults to path of calling document)
// [domain] - domain for which the cookie is valid (defaults to domain of calling document)
// [secure] - Boolean value indicating if the cookie transmission requires a secure transmission
// * an argument defaults when it is assigned null as a placeholder
// * a null placeholder is not required for trailing omitted arguments
function setCookie(name, value, expires, path, domain, secure) {
var curCookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "")
if (!caution || (name + "=" + escape(value)).length <= 4000)
document.cookie = curCookie
else
if (confirm("Cookie exceeds 4KB and will be cut!"))
document.cookie = curCookie
}

// name - name of the desired cookie
// * return string containing value of specified cookie or null if cookie does not exist
function getCookie(name) {
var prefix = name + "="
var cookieStartIndex = document.cookie.indexOf(prefix)
if (cookieStartIndex == -1)
return null
var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
if (cookieEndIndex == -1)
cookieEndIndex = document.cookie.length
return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}

// 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)
// * path and domain default if assigned null or omitted if no explicit argument proceeds
function deleteCookie(name, path, domain) {
if (getCookie(name)) {
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT"
}
}

// date - any instance of the Date object
// * you should hand all instances of the Date object to this function for "repairs"
// * this function is taken from Chapter 14, "Time and Date in JavaScript", in "Learn Advanced JavaScript Programming"
function fixDate(date) {
var base = new Date(0)
var skew = base.getTime()
if (skew > 0)
date.setTime(date.getTime() - skew)
}

var now = new Date()
fixDate(now)
now.setTime(now.getTime() + 31 * 24 * 60 * 60 * 1000)
var name = getCookie("name")
if (!name)
name = prompt("Please enter your name:", "BiG Al")
setCookie("name", name, now)
document.write("Hello " + name + "!")
//-->
</script>



Which bit is the recall bit??? :confused:

Khalid Ali
09-01-2003, 04:32 PM
function getCookie(name) {
var prefix = name + "="
var cookieStartIndex = document.cookie.indexOf(prefix)
if (cookieStartIndex == -1)
return null
var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
if (cookieEndIndex == -1)
cookieEndIndex = document.cookie.length
return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}

where parameter
name="name"

Alien Man
09-01-2003, 06:15 PM
Why not just put it in a .js file and write it once and call it when ever you need it from what ever page you need to use it in.

Khalid Ali
09-01-2003, 06:36 PM
Originally posted by Alien Man
Why not just put it in a .js file .

:-)

As a mater of fact good idea...

bigal
09-02-2003, 03:43 AM
How would you do that? :confused:

Would you put the entire cookie code in a .js file.

How do you call it in a normal html file ??
I will have to experiment! :rolleyes:


:cool:

bigal
09-02-2003, 06:52 AM
I will open a new topic on how to have Javascript cod in a .js file and insert it wherever needed! :)