생성 된 세션과 세션 ID로 쿠키를 설정하고 다음 번에 페이지를 방문 할 때 쿠키에서 세션을 검색 할 수 있습니까? 내 로그인 페이지에서 나를 기억하는 버튼을 만들려고 노력 중이며 이것이 이렇게 할 수 있는지 궁금해했습니다.쿠키에서 세션 설정하기 및 쿠키에서 세션 검색하기 PHP
0
A
답변
1
"내 계정 정보 기억"기능을 구현하기 위해 PHP 세션을 연장하지 마십시오. 세션을 다시 초기화하는 것이 훨씬 좋습니다.
사용자가 체크 가진 웹 사이트에 올 때 "기억하기"체크 박스, 웹 사이트 고유 코드 (꽤 긴 임의의 문자열)을 생성하고 저장합니다 지역 :
가장 일반적인 시나리오는 이것이다 쿠키 및 서버 측 데이터베이스.
사용자가 브라우저를 닫으면 세션이 닫히지 만 쿠키는 유지됩니다.
다음 번에 사용자가 서버를 방문하면 데이터베이스에서 쿠키를 찾아서 사용자/암호 쌍 대신 코드를 기반으로 인증합니다.
이
은 좋은 출발점이 될 수 있지만뿐만 아니라 여러 가지 향상된 기능이 가능한이 있습니다 것입니다 :당신은 고유 코드와 함께 쿠키에 사용자 이름을 절약 할 수있다. 이 쌍을 사용하여 인증하는 것이 안전하고 빠릅니다.
사용자의 IP를 데이터베이스에 저장할 수 있으므로 인증 데이터가이 IP에서만 작동합니다.
고유 한 코드를 생성하여 데이터베이스에 저장하는 대신 사용자 암호와 소금을 기반으로 해시 코드를 즉석에서 작성할 수 있습니다. 이렇게하면 데이터베이스가 쓰기 작업에서 제외됩니다. 보안/속도 요구 사항에 따라
는
이 시나리오의 변화가있을 수 있지만,베이스는 동일하게 유지 : 그가 돌아 오면 일단 쿠키, 그를 재 인증을 사용하여 사용자를 표시합니다.
관련 문제
- 1. 쿠키에서 세션 변수를 채워야합니까?
- 2. PHP Facebook v5 쿠키에서 세션 가져 오기
- 3. 세션 쿠키에서 ASP.NET 세션을 인스턴스화
- 4. 쿠키에서 세션 값을 얻는 방법
- 5. Javascript : 쿠키에서 세션 ID를 읽습니다.
- 6. 세션 및 쿠키에서 로그 아웃하는 방법
- 7. 기존 ASP의 세션 쿠키에서 세션 ID 가져 오기
- 8. 장치/감시 세션 쿠키에서 사용자 가져 오기
- 9. w/Socket.IO가있는 쿠키에서 Express 세션 ID를 가져올 수 없습니다.
- 10. 잘못된 유형의 ClaimsIdentity 작업자 프로세스 리사이클 후 세션 쿠키에서 읽음
- 11. 쿠키에서 변수를 찾고 저장하십시오.
- 12. 쿠키에서 호스트 가져 오기
- 13. 쿠키에서 웹 세션을 얻는 방법?
- 14. 쿠키에서 Combobox의 값 선택
- 15. JQuery - 쿠키에서 항목 제거
- 16. JQuery : 쿠키에서 개체 검색
- 17. 는 쿠키에서 날짜
- 18. Twig의 쿠키에서 부울
- 19. 쿠키에서 5 번 투표
- 20. Jquery : 쿠키에서 배열 검색
- 21. Piwik - 쿠키에서 제외
- 22. PHP 세션 및 세션 F
- 23. 쿠키에서 잘못된 문자를 변환하는 PHP 함수는 무엇입니까?
- 24. PHP 클래스의 쿠키에서 값을 가져 옵니까?
- 25. OSCommerce 쿠키에서 MySQL 필드 업데이트
- 26. 쿠키에서 값 가져 오기 및 데이터베이스에 저장
- 27. 쿠키에서 AES를 사용한 암호화 및 암호 해독
- 28. AJAX를 사용하여 쿠키에서 이미지 저장 및 검색
- 29. 쿠키에서 데이터 가져 오기 및 언어 설정
- 30. CakePHP 3 : 쿠키에서 배열 삭제 및 업데이트
체크 박스는 대개 서버가 세션을 무효화하기 전에 대기하는 시간을 나타냅니다. 선택되어 있는지 확인하고 더 오랜 시간을 주기만하면됩니다. [관련 질문] (http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes?rq=1)은 30 초 후에 세션을 만료시킬 수있는 방법을 보여줍니다. 의사록. 결론/최선의 해결책을보십시오. 세션 내에서 값을 저장하여 그들이 나를 기억하는지 여부를 확인할 수 있습니다. 선택에 따라 30 분 또는 5 시간 내에 해당 세션을 삭제할 수 있습니다. –
@DaveChen 답장을 보내 주셔서 감사합니다. 나는 ini_set ('session.gc_maxlifetime', '31536000');을 방문했습니다. 저는 1 년 동안 세션을 열어 두어야한다고 생각합니다. –
질문을 오해하지 않은 경우 : 세션 만료 기간은 나를 체크 한 사용자와 체크하지 않은 사용자 사이에서 다양하게하는 것입니다. 이 설정은 모든 세션을 변경합니다. 사용자의 선택에 따라 세션 수명을 변경하지 않으시겠습니까? 이 경우 나는 ($ _ SESSION [ 'LAST_ACTIVITY']) && (time() - $ _SESSION [ 'LAST_ACTIVITY']> 1800)) {'의 방향으로 당신을 가리키고 싶다. 첫 번째 대답은 '결론'입니다. –