2013-05-20 5 views
0

쿠키에 제출 된 데이터를 저장할 수있는 방법이 있습니까? 동일한 양식을 다시로드하면 텍스트 필드가 쿠키에 저장된 값으로 채워 집니까?향후 양식 제출을 위해 쿠키 저장

나는 쇼핑 웹 사이트가있어서 고객 등록을 원하지 않으므로 주문을하고 다시 주문하면 다른 양식을 주문할 때 양식에 정보가 미리 채워집니다.

나는 주변을 둘러 보았지만 아무도 그러한 것을 언급하지 않는 것 같습니다.

+0

정확합니다. 영구 쿠키를 사용하여 데이터를 저장할 수 있습니다. – NullPointerException

+0

개인 정보를 쿠키에 저장하는 것은 매우 신중해야합니다. –

+0

@MikeRobinson : 보안 위협이 있습니까? 이름, 이메일 및 주소를 저장합니다. –

답변

1

$_COOKIE[]을 사용하여 쿠키에 저장된 정보에 액세스하고 검색 할 수 있습니다.

+0

네,하지만 보통 종류의 쿠키에는 수명이 있습니다. 만료되면 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

당신은 충분히 긴 시간으로 쿠키 만료 시간을 설정 봤어을? 예를 들어 1 년은 어떻습니까? :

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); 
    }); 
}); 

, 어떤 서버 측 언어를 사용하든 다음 페이지로드시 쿠키 값에 액세스 할 수 있습니다. 따라서 쿠키를 사용하여 양식 필드를 직접 채울 수 있습니다. 예를 들면 : 당신이 PHP를 사용하는 경우, 당신이 할 수있는 다음 :

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

하는 방식으로 괜찮을 수있는 사용자 이름이나 이메일을 저장하지만, 암호 등의 쿠키 (어떤 인증 정보를 저장하지 마십시오) 또는 기타 민감한 정보 (예 : 신용 카드 번호).

+0

나는이 Bhashit을 시도 할 것이다. 나는 민감한 정보, 이름, 이메일 및 주소를 저장하지 않을 것이다. –

1

이것은 당신이 필요로하는 것을 달성하기위한 매우 쓸모없는 방법이며, 오류 및 개인 정보 보호 문제가 발생하기 쉽습니다. 공유 할 수있는 모든 컴퓨터에 대한 끔찍한 아이디어.

이와 비슷한 작업을 수행하려는 경우 세션 ID가있는 단일 영구 쿠키를 만듭니다. 그런 다음 해당 세션 ID로 고객을 식별하고 해당 세션 ID를 참조로 사용하여 데이터베이스의 모든 데이터를 저장/읽습니다.

또한 고객에게 영구 쿠키를 사용하여 자신의 데이터를 기억하고 "내 데이터를 기억하지 못합니다"옵션이있는 버튼을 제공한다는 사실을 고객에게 분명히 알립니다.

관련 문제