>  기사  >  백엔드 개발  >  PHP에서 세션 ID를 전달하는 방법

PHP에서 세션 ID를 전달하는 방법

伊谢尔伦
伊谢尔伦원래의
2017-04-27 13:35:545309검색

PHP에서 세션 ID를 전달하는 방법

일반적으로 각 페이지 간에 전달되는 고유한 세션 ID를 사용하며, 이를 통해 해당 사용자가 서버에 저장하는 세션 변수 사용자를 팔로우합니다. 두 가지 주요 일반적인 세션 ID 전송 방법이 있습니다.

첫 번째 방법은 쿠키를 기반으로 세션 ID를 전달하는 것입니다. 이 방법은 더 최적화되어 있지만 사용자가

쿠키

를 차단할 수 있기 때문에 자주 사용할 수는 없습니다. 두 번째 방법은 URL 매개변수를 통해 이를 전달하고 세션 ID를 URL에 직접 삽입하는 것입니다.

관련 주제 추천: php 세션 (사진, 동영상, 사례 포함)

Session 구현 시 보통 쿠키 기반 방식을 사용하며, 클라이언트가 저장하는 세션 ID는 쿠키입니다. 클라이언트가 쿠키를 비활성화하면 세션 ID가 쿠키에 저장될 수 없고 페이지 간 전달이 불가능해집니다. 그러나

Linux 플랫폼에서는 쿠키 상태를 자동으로 확인할 수 있습니다. 클라이언트가 이를 비활성화하면 시스템이 자동으로 URL에 세션 ID를 추가하여 전송합니다. 이 기능은 Windows 시스템에서는 사용할 수 없습니다.

1. 쿠키를 통해 세션 ID 전달

클라이언트가 쿠키를 금지하지 않는 경우 PHP 스크립트에서 session_start()

함수를 사용하세요. 초기화 후 서버는 자동으로 HTTP 헤더를 보내 세션 ID를 클라이언트 컴퓨터의 쿠키에 저장합니다. 설정 방법은 다음과 유사합니다.

쿠키에서 세션 ID를 가상으로 설정하는 과정

setcookie(session_name(), session_id(), 0, '/')

첫 번째 매개변수는 session_name() 함수를 호출하여 현재 세션의 이름을 반환합니다. 쿠키의 식별 이름으로. session_name() 함수를 호출할 때 매개변수를 제공하여 현재 세션의 이름을 변경할 수 있습니다.

두 번째 매개변수는 session_id() 함수를 호출하고 현재 세션 ID를 쿠키 값으로 반환합니다.

함수를 호출할 때 매개변수를 제공하여 현재 세션 ID를 설정할 수도 있습니다. session_id()

세 번째 매개변수 값은 0이며, php.ini 파일의

옵션으로 설정된 값을 전달합니다. 기본값은 0입니다. 이는 브라우저가 닫힐 때까지 세션 ID가 클라이언트 쿠키에 계속된다는 의미입니다. session.cookie_lifetime

네 번째 매개변수 "/" 역시 PHP 설정 파일을 통해 지정한 값으로, php.ini의 s

옵션으로 설정한 값입니다. 기본값은 "/"입니다. 이는 쿠키에 설정되는 경로가 전체 도메인에서 유효하다는 의미입니다. ession.cookie_path

2. URL을 통해 세션 ID를 전달합니다

클라이언트 브라우저가 쿠키를 지원하는 경우 브라우저에 세션 ID를 쿠키로 저장합니다. 다만, 사용자가 쿠키 사용을 거부한 경우에는 쿠키로서의 세션ID가 브라우저에 존재하지 않으므로 클라이언트 요청에 쿠키 정보가 포함되지 않습니다. session_start() 함수가 호출될 때 클라이언트 브라우저에서 쿠키인 세션 ID를 얻을 수 없는 경우 새 세션 ID가 생성되고 사용자 상태를 추적할 수 없습니다. 따라서 사용자가 세션을 지원하는 PHP 스크립트를 요청할 때마다 session_start() 함수는 세션을 열 때 새 세션을 생성하므로 사용자 상태를 추적하는 기능이 손실됩니다.

은 PHP에서 세션을 추적하는 또 다른 메커니즘을 제공합니다. 클라이언트 브라우저가 쿠키를 지원하지 않는 경우 PHP는 클라이언트 요청 URL을 다시 작성하고

세션 ID를 URL에 추가할 수 있습니다. 각 하이퍼링크의 URL에 세션 ID를 수동으로 추가할 수 있습니다. 이 방법은 많은 작업이 필요하므로 일반적으로 권장되지 않습니다. 예제 코드는 다음과 같습니다.

<?php
//开启 session
session_start();
// 在 URL 后面附加参数,变量名为session_name()获取的名称,值为session_id()获取
echo &#39;<a href="test.php?&#39;.session_name().&#39;=&#39;.session_id().&#39;">演示</a>&#39;;
?>

관련 학습 권장사항:

PHP 프로그래밍 입문부터 숙련까지

위 내용은 PHP에서 세션 ID를 전달하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.