PHP 세 션 메커니즘 소개 및 용법
쿠키 는 페이지 를 요청 할 때마다 검증 을 합 니 다.사용자 정보 가 데이터베이스 에 저장 되면 매번 데이터베이스 조 회 를 실행 하여 데이터베이스 에 불필요 한 부담 을 줍 니 다.쿠키 는 수정 할 수 있 기 때문에 안전 계수 가 너무 낮 습 니 다.
session 은 서버 단면 에 저 장 된 세 션 으로 상대 적 으로 안전 하 며 쿠키 처럼 저장 길이 가 제한 되 어 있 지 않 습 니 다.세 션 은 서버 에 텍스트 파일 로 저장 되 어 있 기 때문에 클 라 이언 트 가 세 션 내용 을 수정 하 는 것 을 두려워 하지 않 습 니 다.실제로 서버 쪽 에 있 는 세 션 파일 은 PHP 가 세 션 파일 을 자동 으로 수정 할 수 있 는 권한 으로 시스템 읽 기와 쓰기 권한 만 유지 하고 ftp 를 통 해 수정 할 수 없 기 때문에 훨씬 안전 합 니 다.
쿠키 의 경우 로그 인 여 부 를 검증 하려 면 쿠키 에 사용자 이름과 비밀 번 호 를 저장 하고(md5 암호 화 후 문자열 일 수 있 음)요청 페이지 마다 검증 해 야 합 니 다.
사용자 이름과 비밀 번 호 를 데이터베이스 에 저장 하면 매번 데이터베이스 조 회 를 한 번 씩 실행 하여 데이터베이스 에 불필요 한 부담 을 준다.한 번 의 검증 만 할 수 는 없 기 때문이다.왜 일 까요?
클 라 이언 트 쿠키 의 정보 가 수 정 될 수 있 기 때문이다.$admin 변 수 를 저장 하여 로그 인 여 부 를 표시 합 니 다.$admin 이 true 일 때 로그 인 을 표시 합 니 다.false 일 때 로그 인 하지 않 았 음 을 표시 합 니 다.첫 번 째 인증 을 통과 한 후에$admin 을 true 와 같이 쿠키 에 저장 합 니 다.다음 에는 검증 하지 않 아 도 됩 니 다.맞 습 니까?틀 렸 습 니 다.누 군가 true 인$admin 변 수 를 위조 하면 바로 관리 권한 을 가 져 오지 않 습 니까?아주 안전 하지 않 습 니 다.
세 션 은 다 릅 니 다.세 션 은 서버 에 저 장 된 것 입 니 다.원 격 사용 자 는 세 션 파일 의 내용 을 수정 할 수 없습니다.따라서 저 희 는 단순히$admin 변 수 를 저장 하여 로그 인 여 부 를 판단 할 수 있 습 니 다.첫 번 째 검증 을 통과 한 후에$admin 값 을 true 로 설정 한 다음 에 이 값 이 true 인지 아 닌 지 판단 할 수 있 습 니 다.그렇지 않 으 면 로그 인 인터페이스 로 전환 할 수 있 습 니 다.이렇게 하면 많은 데이터베이스 조작 을 줄 일 수 있다.
또한 쿠키 를 검증 하기 위해 비밀 번 호 를 전달 하 는 매번 의 안전성 을 줄 일 수 있 습 니 다.(Session 인증 은 한 번 만 전달 해 야 합 니 다.SSL 보안 프로 토 콜 을 사용 하지 않 았 다 면)암호 가 md5 암호 화 되 어 있어 도 쉽게 캡 처 될 수 있 습 니 다.
세 션 세 션 은 세 션 세 션 을 여 는 모든 방문 자 에 게 유일한 세 션 ID 를 만들어 사용 자 를 식별 합 니 다.이 세 션 ID 는 사용자 컴퓨터 의 쿠키 에 저 장 될 수도 있 고 URL 을 통 해 전 달 될 수도 있 습 니 다.이에 대응 하 는 구체 적 인 session 값 은 서버 에 저 장 됩 니 다.이것 도 쿠키 와 의 주요 차이 이 고 안전성 이 상대 적 으로 높 습 니 다.
세 션 생 성
session 을 만 들 거나 존재 하 는 세 션 을 되 돌려 주 려 면 session 을 사용 해 야 합 니 다.start()함수 가 session 세 션 을 열 면 시스템 에서 세 션 ID 를 할당 합 니 다.
<?php
session_start();// , true。 , ,
?>
등록 session 변수session 사용register()함수 가 session 변 수 를 등록 하고 TRUE 로 돌아 가 는 데 성공 하지 않 으 면 FALSE 로 돌아 갑 니 다.
문법:bool sessionregister( mixed name [, mixed ...] )
session 사용register()함 수 는 현재 세 션 에 하나 이상 의 전역 session 변 수 를 등록 할 수 있 습 니 다.인자 name 은 추가 하고 싶 은 변수 이름 이 고 성공 하면 논리 값 true 를 되 돌려 줍 니 다.$SESSION[name]또는$HTTPSESSION_VARS[name]형식 으로 값 을 얻 거나 할당 합 니 다.
예:
<?php
session_start();
$username = "nostop";
session_register("username");
?>
이 예 에서,우 리 는 session 에 username 이라는 변 수 를 등 록 했 는데,그 값 은 nostop 입 니 다.세 션 읽 기
PHP 에 내 장 된$SESSION 변 수 는 설정 한 session 변 수 를 편리 하 게 접근 할 수 있 습 니 다.
예:
<?php
session_start();
echo " :".$_SESSION["username"]; // :nostop
?>
소각 세 션session_unregister() 단일 session 변수 로그아웃
unset($_SESSION['age']); 로그아웃 시$SESSION[age]등 록 된 session 변수
session_unset() 등 록 된 모든 변 수 를 삭제 합 니 다.
session_destroy()모든 session 변 수 를 취소 하고 전체 session 세 션 을 취소 합 니 다.
예:
<?php
session_start();
session_unregister("username"); // session
session_unset(); // session
?>
변수 가 세 션 변수 로 등록 되 었 는 지 확인 합 니 다.session_is_registered
문법:booben sessionis_registered(string name);
이 함 수 는 현재 session 에 지정 한 변수 등록 이 있 는 지 확인 할 수 있 습 니 다.매개 변수 name 은 검사 할 변수 이름 입 니 다.성공 하면 논리 값 true 를 되 돌려 줍 니 다.
예:
<?php
session_start();
if(!session_is_registered("gender")){ //
session_register("gender"); //
}
$gender=" ";
echo $_SESSION['gender']; //
?>
현재 세 션 이름 액세스session_name
문법:boolean sessionname(string [name]);
이 함 수 는 현재 session 의 이름 을 가 져 오 거나 다시 설정 할 수 있 습 니 다.매개 변수 name 이 없 으 면 현재 session 이름 을 가 져 오 는 것 을 표시 하고 매개 변 수 를 더 하면 session 이름 을 매개 변수 name 으로 설정 하 는 것 을 표시 합 니 다.
예:
<?php
$sessionName = session_name(); // Session , PHPSESSID
$sessionID = $_GET[$sessionName]; // Session ID
session_id($sessionID); // session_id() Session ID
?>
현재 세 션 표식 번호 액세스session_id
문법:boolean sessionid(string [id]);
이 함 수 는 현재 session 에 저 장 된 표지 번 호 를 가 져 오 거나 다시 설정 할 수 있 습 니 다.매개 변수 id 가 없 으 면 현재 session 의 표지 번호 만 가 져 오 는 것 을 나타 내 고 매개 변 수 를 더 하면 session 의 표지 번 호 를 새로 지정 한 id 로 설정 하 는 것 을 나타 낸다.
세 션 의 생존 기간 설정
setcookie:클 라 이언 트 에 HTTP 쿠키 를 보 냅 니 다.
<?php
session_start
//
$lifeTime = 24 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");
?>
session_set_cookie_params:Session 의 생존 기간 을 설정 한 이 함 수 는 session 에 있어 야 합 니 다.start()함수 호출 전에 호출 합 니 다.클 라 이언 트 가 IE 6.0,session 을 사용 하면set_cookie_params(); 함수 설정 Cookie 에 문제 가 있 을 수 있 으 므 로 setcookie 함 수 를 수 동 으로 호출 하여 쿠키 를 만 듭 니 다.
//하루 저장
<?php
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
session_start();
$_session["admin"] = true;
?>
세 션 파일 의 저장 경로 설정session_save_path():sessionstart()함수 호출 전에 호출 합 니 다.
<?php
//
$savePath = "./session_save_dir/";
//
$lifeTime = 24 * 3600;
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();
$_session["admin"] = true;
?>
<?php
session_start(); // Session
$username='nostop';
session_register('username'); // username
echo ' :'.$_SESSION['username']; // :nostop Session
$_SESSION['age']=23; // age ,
echo ' :'.$_SESSION['age']; // :23
session_unregister('username'); // Session
echo $_SESSION['username']; //
echo $_SESSION['age'];//23
unset($_SESSION['age']); // Session
echo ' :'.$_SESSION['username']; //
echo ' :'.$_SESSION['age']; //
?>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.