PHP를 통한 상태 지원 응용 프로그램 개발
사용자가 웹 사이트를 탐색하고 한 웹 페이지에서 다른 웹 페이지로 서핑하는 경우 때때로 웹 사이트는 사용자가 수행하는 작업 (예 : 선택)을 기억해야합니다. 예를 들어, DVD를 판매하는 웹 사이트에서 사용자는 일반적으로 DVD 목록을 탐색하고 쇼핑 세션이 끝날 때 체크 아웃 할 개별 DVD를 선택합니다. 웹 사이트는 사용자가 체크 아웃 할 때 선택한 항목을 사용자에게 다시 제시해야하기 때문에 사용자가 선택한 DVD를 기억해야합니다. 다시 말해, 웹 사이트는 사용자의 탐색 활동의 상태 (즉, 선택된 항목)를 기억해야합니다 답례쿠키.
그러나 HTTP는 무국적 프로토콜이며 상태를 처리 할 수 없습니다. 표준 HTML 웹 사이트는 기본적으로 사용자에게 정보를 제공하고 단순히 다른 관련 웹 페이지로 사용자를 지시하는 일련의 링크를 제공합니다. 이 HTTP 의이 무국적 특성을 통해로드 밸런싱 목적으로 웹 사이트를 많은 서버에서 복제 할 수 있습니다. 주요 단점은 한 페이지에서 다른 페이지로 탐색하는 동안 웹 사이트는 브라우징 세션의 상태를 기억하지 못한다는 것입니다. 이것은 상호 작용을 거의 불가능하게 만듭니다.
상호 작용을 높이기 위해 개발자는 PHP의 세션 처리 기능을 사용하여 HTTP의 기능을 강화하여 브라우징 세션의 상태를 기억할 수 있습니다. PHP는 기본적으로 2 가지 방법입니다.
1. 쿠키 사용
2. 세션 사용
다음 할부는 쿠키를 사용하여 세션을 관리하는 방법에 대해 설명합니다 …
할부 2
쿠키
쿠키는 브라우저에 상태 정보를 저장하는 데 사용됩니다. 브라우저는 각 도메인에 대해 최대 20 개의 쿠키를 유지할 수 있으며 쿠키에 저장된 값은 4KB를 초과 할 수 없습니다. 웹 사이트에서 20 개가 넘는 쿠키가 만들어지면 최신 20 개만 저장됩니다. 쿠키는 복잡한 세션 커뮤니케이션이 필요하지 않으며 개인 정보 보호 문제로 인해 일부 개발자가 선호하지 않는 경우에만 적합합니다. 또한 일부 사용자는 브라우저에서 쿠키 지원을 비활성화합니다.
다음은 쿠키를 사용할 때 발생하는 일반적인 서버 브라우저 순서입니다.
1. 서버는 브라우징 상태를 기억해야한다는 것을 알고 있습니다.
2. 서버는 쿠키를 생성하고 HTTP 응답에서 세트 쿠키 헤더 필드를 사용하여 쿠키를 브라우저로 전달합니다.
3. 브라우저는 HTTP 응답으로 쿠키 필드를 읽고 쿠키를 저장합니다.
4.이 쿠키 정보는 향후 브라우저 서버 통신을 따라 전달되며 PHP 스크립트에서 변수로 사용할 수 있습니다.
PHP는 쿠키를 쉽게 생성 할 수 있도록 setcookie ()라는 기능을 제공합니다. SetCookie의 구문은 다음과 같습니다.
int setCookie (문자열 이름, [String val], [int expiration_date], [String Path], String Domain, [int secure])
매개 변수는 다음과 같습니다.
1. 이름 – 이것은 필수 매개 변수이며 쿠키를 식별하는 데 사용됩니다.
2. 값 – 쿠키의 값 – 예 : 쿠키가 사용자 이름을 저장하는 데 사용되는 경우 값 매개 변수는 실제 이름 (예 : 남자
3. Expiration_date- 쿠키의 수명. 이 날짜 이후 쿠키는 만료되어 사용할 수 없습니다
4. 경로 – 경로는 쿠키가 유효하고 허용되는 URL을 나타냅니다.
5. 도메인 – 도메인은 쿠키를 생성하고 쿠키의 내용을 읽을 수 있습니다.
6. Secure- 쿠키가 보안 연결을 통해서만 전송 될 수 있는지 (예 : SSL 세션을 활성화합니다
다음은 특정 웹 페이지가 사용자에게 몇 번이나 표시되었는지 사용자에게 표시하는 예입니다. 아래 코드 (PHP 및 HTML 모두)를 .php 확장자가있는 파일에 복사하여 테스트하십시오.
[? php
// $ count 변수가 카운트 쿠키와 연관되어 있는지 확인합니다.
if (! isset ($ count)) {
$ count = 0;
} 또 다른 {
$ count ++;
}
setCookie ( “count”, $ count, time ()+600, “/”, “,”, 0);
?]
[HTML]
[머리]
[제목] 쿠키를 사용한 세션 처리 [/Title]
[/머리]
[몸]
이 페이지가 표시되었습니다 : [? = $ count?] 시간.
[/몸]
[/html]
다음 할부는 쿠키가 활성화 된 PHP 세션 처리 기능을 사용하여 세션을 관리하는 방법에 대해 설명합니다.
할부 3
PHP 세션 처리 – 쿠키가 활성화되었습니다
쿠키를 사용하여 브라우저에 세션 정보를 저장하는 대신 정보를 서버에 세션 파일에 저장할 수 있습니다. 각 사용자 세션마다 하나의 세션 파일이 생성되고 유지됩니다. 예를 들어, 웹 사이트를 탐색하는 동시 사용자 3 명이 있으면 각 사용자마다 하나씩 3 개의 세션 파일이 생성되고 유지됩니다. 세션 파일은 PHP 스크립트 또는 PHP가 제공하는 데몬 쓰레기 수집 프로세스에 의해 세션이 명시 적으로 닫히면 삭제됩니다. 좋은 프로그래밍 관행은 세션이 스크립트에서 명시 적으로 폐쇄 될 것을 요구할 것입니다.
다음은 PHP 세션 처리가 사용될 때 발생하는 일반적인 서버 브라우저 순서입니다.
1. 서버는 브라우징 상태를 기억해야한다는 것을 알고 있습니다.
2. PHP는 SSSION ID를 생성하고 후속 페이지에서 요구하는대로 향후 정보를 저장하는 세션 파일을 생성합니다.
3. 쿠키가 브라우저에서 세션 ID로 생성됩니다.
4. 세션 ID를 저장하는이 쿠키는 서버에 대한 모든 후속 요청에 대해 투명하고 자동으로 서버로 전송됩니다.
다음 PHP 세션 처리 예제는 이전 쿠키 예제와 동일한 결과를 달성합니다. 아래 코드 (PHP 및 HTML 모두)를 .php 확장자가있는 파일에 복사하여 테스트하십시오.
[? php
// 세션을 시작합니다
session_start ();
// 세션 파일에서 Count 정보를 기억해야한다고 PHP에 알려줍니다.
if (! session_is_registered ( “count”)) {
session_register ( “count”);
$ count = 0;
}
또 다른 {
$ count ++;
}
$ session_id = session_id ();
?]
[HTML]
[머리]
[제목] PHP 세션 취급 – 쿠키 지원 [/title]
[/머리]
[몸]
현재 세션 ID는 다음과 같습니다. [? = $ session_id?]
이 페이지가 표시되었습니다 : [? = $ count?] 시간.
[/몸]
[/html]
PHP가 세션 처리를 위해 제공하는 기능의 요약은 다음과 같습니다.
1. 부울 start_session () – 세션을 초기화합니다
2. String Session_ID ([String ID]) – 현재 세션 ID를 반환하거나 세션이 생성 될 때 사용할 세션 ID를 지정합니다.
3. Boolean Session_Register (Mixed Name [, Mixed …]) – 세션 파일에 저장할 변수를 등록합니다. 함수에 전달 된 각 매개 변수는 별도의 변수입니다.
4. boolean session_is_registered (String variable_name) – 세션 파일에 저장되도록 변수가 이전에 등록되었는지 확인합니다.
5. session_unregister (String varriable_name) – 세션 파일에서 변수를 등록 해제합니다. 등록되지 않은 변수는 더 이상 세션에서 참조에 유효하지 않습니다.
6. Session_Unset () – 모든 세션 변수를 풀어냅니다. 모든 변수는 등록 된 상태로 유지됩니다.
7. 부울 세션 _destroy () – 세션을 파괴합니다. 이것은 start_session 함수와 반대입니다.
다음 할부는 쿠키가 비활성화 된 경우 PHP 세션 처리 기능을 사용하여 세션을 관리하는 방법에 대해 설명합니다.
할부 4
PHP 세션 처리 – 쿠키가없는
브라우저에서 쿠키가 비활성화 된 경우 위의 예는 작동 할 수 없습니다. 이는 모든 변수를 저장하는 세션 파일이 서버에 보관되지만 세션 및 관련 세션 파일을 식별하는 데 사용되는 세션 ID를 저장하기 위해 브라우저에서 쿠키가 여전히 필요하기 때문입니다. 이와 관련하여 가장 일반적인 방법은 세션 ID를 URL의 쿼리 매개 변수로 브라우저에서 서버로 명시 적으로 전달하는 것입니다.
예를 들어, PHP 스크립트는 START_SESSION CALL에 이후에 요청을 생성합니다.
http://www.yourhost.com/yourphpfile.php?phpsessid=] actual session id]
다음은 토론을 설명하는 발췌문입니다.
수동으로 URL 구축 :
$ url = “http://www.yoursite.com/yourphppage.php?phpsessid=”. session_id ();
[a href = “[? = $ url?]”] 앵커 텍스트 [/a]
SID를 사용하여 URL 구축 :
[a href = “http://www.yoursite.com/yourphppage.php?;?=SID?]”] 앵커 텍스트 [/a]