$ _SESSION을 사용하여 사용자 ID를 저장했지만 SQL과 쌍을 이루는 일반 쿠키 (KEY 포함)를 사용하여 사용자가 브라우저를 닫을 때 인증을 유지할 수 있도록 변경하고 싶습니다.
SESSIONs 테이블의 각 행에 대한 고유 키를 생성하려면 어떻게합니까?
해결 방법
세션 쿠키에 대한 PHP 쿠키 만료 문제를 우회하기 위해 자체 세션 핸들러를 효과적으로 작성하려고합니다. 이것은 매우 간단하고 제대로 수행되면 꽤 최적화됩니다.
1 단계 : 세션 ID 생성
세션 ID는 고유합니다. 그러나 영구적 인 세션을 계획하는 경우 몇 가지 사항을 염두에 두어야합니다. 연결 문제에 관계없이 세션이 브라우저별로 전달되기를 원합니다. 따라서 세션 ID를 네비게이터의 사용자 에이전트 (변경되지 않음)와 매핑하여 시스템을 약간 속일 수 있습니다.
이렇게하면 세션 ID 생성기가 두 명의 개별 방문자에 대해 동일한 ID를 생성 할 가능성을 줄일 수 있습니다. 나머지는 난수 생성기와 해시 알고리즘에 달려 있지만- md5 (microtime (). $ _ SERVER [ 'REMOTE_ADDR'])
는 일반적으로 신뢰할 수있는 친구입니다.
2 단계 : 데이터 저장 및 검색
데이터를 저장하는 것도 간단합니다. 목표는 세션 키 ( PRIMARY
로 설정)와 데이터 ( TEXT 로 저장되는 가장 간단한 형식에 대한 직렬화 된 배열)의 최소 두 개의 열이있는 MySQL 테이블을 만드는 것입니다. 코드>).
세션을 생성 할 때 새 행을 삽입하고 오류를 확인하십시오. 오류가 발생하면 키가 이미 사용 된 것이므로 다른 키를 다시 생성해야합니다. 행이 성공적으로 삽입 되었다면-이제 사용자에 대한 세션 행이 생겼습니다! 여기서부터해야 할 일은 적절하다고 생각되는대로이 행을 읽고 쓰는 것입니다.
세션 ID로 사용자를 쿠키하면 완료됩니다!
주의 사항
참조 페이지 https://stackoverflow.com/questions/13434906
'MySql' 카테고리의 다른 글
MySQL 5.5 명령 줄 클라이언트에서 phpmyadmin의 데이터베이스에 액세스합니까? (0) | 2021.01.20 |
---|---|
MySQL JDBC : 쿼리가 성공했는지 알아 보시겠습니까? (0) | 2021.01.20 |
MySQL Ruby on Rails 연결 문제 (0) | 2021.01.20 |
MySQL : 특정 날짜가있는 열에있는 모든 수치의 합계를 계산합니다. (0) | 2021.01.20 |
MySQL php / mysql의 아랍어가 "????"로 나타납니다. html의 물음표 (0) | 2021.01.19 |
댓글