2012-02-06 6 views
-2

У меня есть php-страница с формой, в которой у меня есть флажок, который пользователь может проверить, чтобы выбрать запоминающее поле в браузере следующего входа. Я использую этот код:Как сохранить cookie в браузере с помощью javascript

if(rememberCheck.checked==true){ 
     var exdate=new Date(); 
     exdate.setDate(exdate.getDate() + exdays); 
     var cod_value=escape(codice.value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); 
     document.cookie="cod=" + cod_value+";log="+login.value; 
} 
function getCookie(c_name){ 
    var i,x,y,ARRcookies=document.cookie.split(";"); 
    for (i=0;i<ARRcookies.length;i++){ 
     x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
     y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); 
     x=x.replace(/^\s+|\s+$/g,""); 
     if (x==c_name){ 
      return unescape(y); 
     } 
    } 
} 
function checkCookie(){ 
    var cod=getCookie("cod"); 
    var username = getCookie("login"); 
    if (username!=null && username!="" && cod!=null && cod!=""){ 
     var usn = document.getElementsByName('usn')[0]; 
     var codice = document.getElementsByName('codice')[0]; 
     usn.value=username; 
     codice.value=cod; 
    } 
} 

Проблема заключается в том, что, когда я прочитал печенье, он прочитал PHPSESSID = XXXXXX, а не то, что я пишу. Что я могу сделать? можешь мне помочь?

+0

Может быть, лучше всего использовать 'Set-Cookie' и' Cookie' HTTP заголовки и в PHP '$ _COOKIE' ассоциативный массив вместо этого? –

ответ

0
<?php 
if(isset($_POST['rem_me'])){ 
    if($_POST['rem_me']=='on'){ 
     setcookie ("remember", $value, time()+360000); 
    } 
} 
?> 
-1

почему бы не использовать JQuery $ поста для установки PHP печенья на сервере вместо этого, они легче работать, чем Js печенье

+0

Я хочу сохранить в браузере, поэтому, когда пользователь закрывает браузер и переходит в другое время на мою страницу, cookie должен быть сохранен. php является серверной, то же самое? – JackTurky

+0

это плохое решение! отправка запроса на установку файла cookie потребует перезагрузки страницы с успехом. Вы создаете МАССИВНЫЙ трафик. @ user1190704 -> посмотрите [это решение для файлов cookie с большим объяснением] (http://www.quirksmode.org/js/cookies.html) – japrescott

+0

true, это увеличивает нагрузку на сервер, но вы получаете лучшую гибкость php-файлов cookie, которые легче работать с –

4

Вы можете сделать это с PHP тоже.
при входе в систему, если пользователь проверил "запомнить меня", то на PHP
вы можете сделать, как

<? PHP
если (Исеть ($ _ POST [ 'rem_me']) & & $ _POST [» rem_me '] ==' on ')
{
setcookie ("code", $ value, time() + (3600 * 24 * 30 * 12)); // установить ваш файл cookie
}
? >

, если есть какая-либо причина, почему вы хотите это сделать только с JavaScript?

+1

Я говорю javascript, потому что я делаю setcookie («код», значение $); но когда я закрываю cookie cookie, удаляются, и я думал, что в javascript cookie можно сохранить в broswer – JackTurky

+0

приведенный выше комментарий - лучший пример исследования, основанного на опыте и вычитании, но с отсутствием следов инструкций по чтению :) –

+0

понял! я не устанавливал дату истечения срока действия, поэтому, когда я закрываю браузер, это мусорное печенье;) – JackTurky