2013-05-20 4 views
0

Есть ли способ хранить данные, отправленные в файлы cookie, и когда одна и та же форма загружается снова, текстовые поля заполняются сохраненными значениями в файлах cookie?Хранение файлов cookie для будущих представлений формы

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

Я осмотрелся, но никто, кажется, не упоминает об этом.

+0

Вы правы, вы можете использовать постоянные файлы cookie для хранения данных. – NullPointerException

+0

Вы должны очень тщательно хранить личную информацию в куки. –

+0

@MikeRobinson: это создает угрозу безопасности? Я буду хранить имена, адреса электронной почты и адреса –

ответ

1

Вы можете использовать $_COOKIE[] для доступа и получения информации, хранящейся в файле cookie.

+0

Да, но обычный тип файлов cookie имеет определенную «продолжительность жизни», после которой они истекают. Вам нужно использовать постоянные куки, чтобы делать что-то вроде OP. – Dropout

+0

@Dropout, это правда – Starx

2

Да, вы можете хранить куки для последующего использования на стороне браузера клиента. Эти куки называются «постоянными куки». Они сохраняются до тех пор, пока клиент не очистит данные браузера.

Чтобы узнать больше о них, пожалуйста, обратитесь к:

http://www.webopedia.com/TERM/P/persistent_cookie.html

How do I create a persistent vs a non-persistent cookie?

http://en.wikipedia.org/wiki/HTTP_cookie

Вы пробовали настройки времени истечения куки достаточно долго? Например один год, как это ?:

setcookie("myCookie", $myValue, strtotime('+1 year')); 
0

Добавить слушателя onsubmit событий на форме. Прочтите поля в форме, используя то, что вам удобно. Теперь, как только форма была отправлена, вы можете сделать что-то вроде следующего: (просто пример, используя jQuery-cookie)

$('#yourFormId .fieldClass').each(function() { 
    // a cookie that expires in 30 days. 
    $.cookie('somePrefix' + $(this).attr('id'), $(this).val(), {expires: 30}); 
}); 

На следующей, загрузке страницы:

$(function() { 
    $('#yourFormId .fieldClass').each(function() { 
     var value = $.cookie('somePrefix' + $(this).attr('id')); 
     $(this).val(value); 
    }); 
}); 

Еще лучше, независимо от того, какой язык на стороне сервера вы используете, позволит вам получить доступ к значениям cookie при следующей загрузке страницы. Таким образом, вы можете напрямую заполнить поля формы, используя файлы cookie. Для экс: если вы используете PHP, вы можете сделать следующее:

<input id="someId" value="<%php echo $_COOKIE['somePrefixsomeId']; %>" /> 

Хотя хранения пользовательских имен или сообщений электронной почты может быть хорошо в таком случае, пожалуйста, не хранит информацию об аутентификации в куки (например, пароли) или любую другую конфиденциальную информацию (например, номера кредитных карт).

+0

Я собираюсь попробовать этот Бхашит, я не буду хранить какую-либо конфиденциальную информацию, имена, адреса электронной почты и адреса. –

1

Это очень устаревший способ выполнить то, что вам нужно, оно подвержено ошибкам и проблемам конфиденциальности. Ужасная идея на любом компьютере, который может быть общим.

Если вы хотите сделать что-то подобное, создайте единый постоянный файл cookie с идентификатором сеанса. Затем определите своего клиента с этим идентификатором сеанса и сохраните/прочитайте все данные из базы данных, используя этот идентификатор сеанса в качестве ссылки.

Кроме того, дайте вашему клиенту четкие знания о том, что вы используете постоянный файл cookie для запоминания его данных и даете ему кнопку с опцией «Не помню мои данные».

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