2014-04-29 234 views
1

使用通用代碼,通過JavaScript,如下面的cookie設置的用戶名和密碼後主動刪除 -餅乾關閉瀏覽器

function submitLogin(){ 
     var uNameInCookie=checkCookie("username"); 

     var passInCookie=checkCookie("password"); 

     if(uNameInCookie!=="" && passInCookie!=""){ 
      document.loginForm.login.value=uNameInCookie; 
      document.loginForm.passwd.value=passInCookie; 
      document.loginForm.submit(); 
     } 
     else{ 
      if(checkInput()){ 

      document.loginForm.submit(); 

      } 
     } 
} 
    function checkCookie(property){ 

    var x= property; 
    var prop = getCookie(x); 
    return prop; 
} 

function getCookie(cName){ 
var name = cName + "="; 
var cookiez = document.cookie.split(';'); 

for (var i=0;i<cookiez.length;i++){ 

     var c= cookiez[i].trim(); 
     if(c.indexOf(name)==0){ 

         return c.substring(name.length,c.length); 
     } 

     } 

     return "" 
} 

function checkInput() 
    { 

      if (document.loginForm.login.value == "") 
      { 

       return false; 
      } 
      else if (document.loginForm.passwd.value == "") 
      { 

       return false; 
      } 
      if (document.loginForm.login.value!= "" && document.loginForm.login.value!=null) 
      { 
      var usernameValue=document.loginForm.login.value; 

      setCookie("username",usernameValue,365); 
      } 
      if (document.loginForm.passwd.value!= "" && document.loginForm.passwd.value!=null) 
      { 
      var passwordValue=document.loginForm.passwd.value; 

      setCookie("password",passwordValue,365); 
      } 
      return true; 
} 
function setCookie (cName, cValue, expDays){ 

     var d = new Date(); 
     d.setTime(d.getTime() + (expDays*24*60*60*1000)); 
     var expDate = d.toGMTString(); 
     alert(expDate); 
     document.cookie = cName + "=" + cValue + ";" + expDate + ";path=/"; 

    } 
    window.onload=submitLogin(); 
</script> 

的瀏覽器能夠自動登錄詳細信息並僅在我註銷時提交表單。

但是,如果關閉瀏覽器並點擊url,cookie中存儲的用戶名和密碼就會消失,表單不會自動登錄。

代碼有什麼問題,或者它是某種瀏覽器設置。如果需要,我還添加了特定網站以添加Cookie。還有什麼我們需要做的嗎?

在此先感謝。

+0

您是否在匿名瀏覽器中運行應用程序? – thomaux

回答

1

原因是,當您設置cookie時,它的到期日期未設置,並且它將會話範圍的cookie作爲cookie。請更正以下行:

document.cookie = cName + "=" + cValue + "; expires=" + expDate + ";path=/"; 
+1

嘿非常感謝Deepak,你正確地指出了這個錯誤。這是我在Stack上發佈的第一個問題。急切地等待着答案。 –

+0

歡迎..... :) –