2015-01-25 4 views
-1

Итак, теперь я узнаю о файлах cookie и получил код своего файла cookie page on w3schools.com.Перенаправление, если cookie null

Здесь, в StackOverflow, я искал перенаправление, и я попытался перенаправить сюда, поскольку cookie не был установлен. Это перенаправит страницу на моем сервере, чтобы принять политику cookie и настроить тему панели администратора.

<!-- Javascript BEFORE page loads Starts --> 
    <script type="text/javascript"> 

     function getCookie(cname) { 
      var name = cname + "="; 
      var ca = document.cookie.split(';'); 
      for(var i=0; i<ca.length; i++) { 
       var c = ca[i]; 
       while (c.charAt(0)==' ') c = c.substring(1); 
       if (c.indexOf(name) == 0) { 
        return c.substring(name.length, c.length); 
       } 
      } 
      return ""; 
     } 

     function checkCookie() { 
      var user=getCookie("username"); 
      if (user != "") { 
       alert("Cookie Set: " + user); 
      } else { 
       //user = prompt("Please enter your name:",""); 
       if (user != "" && user != null) { 
        window.location.replace("http://stackoverflow.com"); 
       } 
      } 
     } 
    </script> 
<!-- Javascript BEFORE page loads Starts --> 

</head> 
<!-- Header Ends --> 

<!-- Body Starts --> 
<body onload="checkCookie()"> 
+0

Вот, прочтите, это может помочь вам найти ответ: http://stackoverflow.com/questions/503093/how-can-i-make-a-redirect-page – WildChild

+0

@WildChild Он делает то, что ответ там говорит. – Barmar

+0

Вы не можете реализовать контроль доступа на клиенте. Вам нужен серверный код. – SLaks

ответ

1

Почему вы проверки user!="" && user!= null в else блоке? переменная user гарантированно будет пустой, когда код входит в этот блок. Вот почему window.location.replace не выполняет и причина, по которой его не перенаправляют.

function setCookie(cname, cvalue, exdays) { 
     var d = new Date(); 
     d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
     var expires = "expires="+d.toUTCString(); 
     document.cookie = cname + "=" + cvalue + "; " + expires; 
    } 

    function checkCookie() { 
    var user=getCookie("username"); 
    if (user != "") { 
     alert("Cookie Set: " + user); 
    } else { 
     //user = prompt("Please enter your name:",""); 
      setCookie("username", "value", 1); 
      window.location.replace("http://stackoverflow.com"); 
    } 
} 
+0

Это тоже не сработает, и, как сказано, я изучаю, и это происходит с w3schools, я не могу сказать, почему извините. –

+0

Бинго и ничего себе, что странно, когда вы наведете обратно, это похоже на то, что вы не пошли на исходную страницу. Можно ли это избежать, как ссылку? –

+0

@TimMarshall Вы должны реализовать метод setCookie(), как показано здесь [link] (http://www.w3schools.com/js/js_cookies.asp). Когда пользователь возвращается на сайт, код должен обрабатывать регистр, если файл cookie присутствует. – camrydash

Смежные вопросы