Simpel cookie - skriv navn på besøgende + antal besøg
Jeg har oprettet 2 sider - en velkomstside med en form, hvor brugeren kan indtaste navn. Siden har et script der skal danne en cookie med antal besøg og dette navn. I samme script er der en redirector - der sender \"gen\"besøgende til en anden velkomstside, hvor navn og antal besøg udskives - dette fungerer, men ikke optimalt.Problem - det udskives således: \"Hello Philip Jerving. undefined Since this is the first time you have been here, please take a moment to look around.undefined\"
Hvor ligger fejlen siden der udskives \"udefined\" både efter navn og antal?
KODEN SER SÅLEDES UD:
SIDE 1:
<SCRIPT LANGUAGE=\"JavaScript\">
<!-- Begin
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (\";\", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + \"=\";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(\" \", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + \"=\" + escape (value) +
((expires == null) ? \"\" : (\"; expires=\" + expires.toGMTString())) +
((path == null) ? \"\" : (\"; path=\" + path)) +
((domain == null) ? \"\" : (\"; domain=\" + domain)) +
((secure == true) ? \"; secure\" : \"\");
}
function show_count() {
var expdate = new Date();
var num;
expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000 * 31));
if(!(num = GetCookie(\"jtotwcount\")))
num = 0;
num++;
SetCookie (\"jtotwcount\", num, expdate);
if (num == 1) document.write(\"Since this is the first time you have been here, please take a moment to look around.\");
else document.write(\"You have been here \" + num + \" times.\");
}
function set_name(form) {
var expdate = new Date ();
expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 31));
var username = form.nameinput.value
if (username != \"\") {
if (confirm(\"Are you sure you want this saved as your name?\")) {
SetCookie (\"jtotwname\", username, expdate);
window.history.go(0);
}
}
else alert(\"Please enter a valid name\");
}
//Redirector begin --
var name = GetCookie(\'jtotwname\');
if (name != null) {
window.location.href = \'enterKnown.asp\';
}
// End -->
</SCRIPT>
FORMEN:
<form>
Please enter your name:
<input type = \"text\" name = \"nameinput\" class=\"input_text\">
<br>
<br>
<input type = \"button\" value = \"Ok\" onClick = \"set_name(this.form)\" class=\"button\" name=\"button\">
</form>
SIDE 2:
<SCRIPT LANGUAGE=\"JavaScript\">
<!-- Begin
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (\";\", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + \"=\";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(\" \", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + \"=\" + escape (value) +
((expires == null) ? \"\" : (\"; expires=\" + expires.toGMTString())) +
((path == null) ? \"\" : (\"; path=\" + path)) +
((domain == null) ? \"\" : (\"; domain=\" + domain)) +
((secure == true) ? \"; secure\" : \"\");
}
function auto_show_name() {
if(GetCookie(\"jtotwname\") != null)
document.write(\"Hello \" + GetCookie(\'jtotwname\')+ \". \");
}
function show_count() {
var expdate = new Date();
var num;
expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000 * 31));
if(!(num = GetCookie(\"jtotwcount\")))
num = 0;
num++;
SetCookie (\"jtotwcount\", num, expdate);
if (num == 1) document.write(\" Since this is the first time you have been here, please take a moment to look around.\");
else document.write(\" You have been here \" + num + \" times.\");
}
// End -->
</SCRIPT>
DER HVOR NAVNET + BESØGSANTAL VISES:
<script language=\"JavaScript\">
document.write(auto_show_name());
document.write(show_count());
</script>
ADRESSEN PÅ SIDEN ER www.MYSA.ORG.UK
