fightstarr20
fightstarr20

Reputation: 12618

Cookie only working without the www in front of my domain

I am setting a cookie in a disclaimer php file like this...

    <script language = "JavaScript">
        <!-- Begin hiding

        function getCookieExpireDate(noDays){
        var today = new Date()
        var expr = new Date(today.getTime()+noDays*24*60*60*1000*365)
        return  expr.toGMTString()
        }

        function makeCookie(name, data, noDays){
        var cookieStr = name + "="+ data
        if (makeCookie.arguments.length > 2){
            cookieStr += "; expires=" + getCookieExpireDate(noDays)
            }
        document.cookie = cookieStr
            var hello="agreedterms.html";
            window.location=hello;
        }

        function noway(){
            var goodbye="index.html";
            window.location=goodbye;
        }
        // End hiding -->
        </script>

And then checking for it in index php like this....

<script language = "JavaScript">
        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 (cookieName) {
        var arg = cookieName + "=";
        var argLength = arg.length;
        var cookieLength = document.cookie.length;
        var i = 0;
        while (i < cookieLength) {
        var j = i + argLength;
        if (document.cookie.substring(i, j) == arg) {
        return getCookieVal(j)
        }
        if (i == 0) {
            break
        }
        }
        return null;
        }
        if(getCookie('disclaimer') == null) {
        location.href="disclaimer.php"
        }
        </script>

This all works fine if I access the site using mydomain.com - but if I use www.mydomain.com then it doesn't work.

Any ideas what I am doing wrong? Do I need to include the www somehow?

Upvotes: 0

Views: 130

Answers (1)

clentfort
clentfort

Reputation: 2504

If I remeber you have to set the domain and path for the cookie by appending following to your cookie string

;domain=.domain.com;path=/

Where obviously you replace the domain by your domain. The . in front of the domain name makes it valid for all subdomains following the domain you are currently on.

Edit: See also the following Stack Overflow answer: Creating a javascript cookie on a domain and reading it across sub domains

Upvotes: 1

Related Questions