> 백엔드 개발 > PHP 문제 > 페이지 간 PHP 세션 손실 문제를 해결하는 방법

페이지 간 PHP 세션 손실 문제를 해결하는 방법

PHPz
풀어 주다: 2023-03-05 22:30:01
원래의
2994명이 탐색했습니다.

PHP 세션의 페이지 간 손실에 대한 솔루션: 1. "php.ini"에서 "session.use_trans_sid=1"을 설정합니다. 2. URL 또는 숨겨진 양식을 통해 수동으로 세션 ID를 전달합니다. 3. 파일 또는 데이터베이스 등을 사용합니다. . "session_i"를 양식에 저장하십시오.

페이지 간 PHP 세션 손실 문제를 해결하는 방법

권장: "PHP Video Tutorial"

소개:

PHP에서 SESSION 손실(페이지 간에 전달할 수 없음)에 대한 솔루션

일반적으로 SESSION이 손실되는 원인은 다음과 같습니다. :

1, 클라이언트가 쿠키를 비활성화했습니다

2. 브라우저가 쿠키에 액세스할 수 없습니다

3. php.ini에서 Session.use_trans_sid=0 또는 컴파일 시 –enable-trans-sid 옵션이 켜져 있지 않습니다

Session 서버 측에 저장됩니다(기본적으로 파일 모드에 저장됨). 클라이언트가 제공한 세션 ID를 기반으로 사용자의 파일을 가져오고,

변수 값을 가져옵니다. 세션 ID는 클라이언트의 Cookie 또는 Query_String을 사용할 수 있습니다. Http1.1 프로토콜

("액세스된 URL" ?")을 서버에 전달한 다음 서버는 세션 디렉터리를 읽습니다. 즉,

session id는 서비스에 저장된 세션 변수를 얻기 위한 ID 카드입니다. session_start(); 코드가 실행되면

는 서버에 세션 파일을 생성한 다음 이에 고유하게 대응하는 세션 ID도 생성합니다.

는 방금 생성된 세션에 저장될 세션 변수를 정의합니다. 양식. 세션 ID를 통해

는 정의된 변수를 꺼낼 수 있습니다. 페이지를 넘은 후 세션을 사용하려면 session_start()를 다시 실행해야 합니다.

해당 세션 ID에 해당하는 다른 세션 파일이 생성됩니다.

이 세션 ID를 사용하면 검색할 수 없습니다. 앞서 언급한 세션 파일의 변수

는 이 세션 ID가 파일을 여는 "키"가 아니기 때문입니다. session_start();

앞에 session_id($session id); 코드를 추가하면 새로운 세션 파일이 생성되지 않으며

는 이 ID에 해당하는 세션 파일을 직접 읽습니다.

PHP의 세션은 기본적으로 세션 ID를 저장하기 위해 클라이언트의 쿠키를 사용합니다.

따라서 클라이언트의 쿠키에 문제가 있으면 세션에 영향을 미칩니다. 다음 사항에 유의해야 합니다.

세션이 반드시 쿠키에 의존할 필요는 없으며 이는 쿠키에 비해 세션의 장점이기도 합니다.

클라이언트의 쿠키가 비활성화되거나 문제가 있는 경우 PHP는 자동으로 세션 ID를 URL에 첨부합니다.

이러한 방식으로 세션 변수는 세션 ID를 통해 여러 페이지에서 사용할 수 있습니다. 그러나 이 첨부 파일에는 "php.ini의 session.use_trans_sid = 1이거나 컴파일 중에 –enable-trans-sid 옵션이 켜져 있습니다"라는 특정 조건도 있습니다.

위의 원칙을 이해했다면 이제 쿠키를 제쳐두고 세션을 사용해 보겠습니다. 세 가지 주요 방법이 있습니다:

1. php.ini에서 session.use_trans_sid = 1을 설정하거나 컴파일할 때 –enable-trans-sid 옵션을 켜세요. ,

PHP가 페이지 전체에 걸쳐 세션 ID를 자동으로 전달하도록 합니다.

2. URL을 통해 값을 수동으로 전달하고 숨겨진 양식을 통해 세션 ID를 전달합니다.

3. 파일, 데이터베이스 등에 session_id를 저장하고 페이지 간 프로세스 중에 수동으로 호출합니다.

위 내용은 페이지 간 PHP 세션 손실 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿