본 글은 php세션의 세부적용에 관한 내용을 주로 소개하고 있으며, 필요한 친구들은
php세션 고급적용
을 참고하세요. 🎜>웹 기술에서는 세션이 매우 중요합니다. 웹 페이지는 무상태 연결 프로그램이므로 사용자의 탐색 상태를 알 수 없습니다. 세션을 통해 사용자가 다시 웹 서버에 요청을 제출할 때 확인을 위해 사용자의 관련 정보가 기록될 수 있습니다. 예를 들어 사용자가 전자상거래 웹사이트를 탐색할 때 세션이 없으면 사용자는 탐색할 때마다 계정 비밀번호를 입력해야 합니다.1. 세션 임시 파일
PHP 함수session_save_path() 함수를 사용하여 세션 임시 파일을 저장하면 임시 파일 저장으로 인한 서버 효율성 저하 및 사이트 열기 속도 저하 문제를 완화할 수 있습니다.
<?php $path ="./tmp/"; //设置session存储的路径 session_save_path($path); session_start(); $_SESSION['userName']=true; ?>참고
string session_cache_limiter([string cache_limiter]);cache_limiter 매개변수는 공개 또는 비공개입니다. 동료 세션은 서버 측이 아니라 클라이언트 측에 있습니다. 서버에는 표시되지 않습니다.
int session_cache_expire([int new_cahche_expire]);new_cahche_expire 매개변수는 세션 캐시의 시간(분)입니다.
참고:
<?php session_cache_limiter("private"); $cache_limit =session_cache_limiter(); //开启客户端缓存 echo "缓存限制为:".$cache_limit."\n"; session_cache_expire(30); $cache_expire = session_cache_expire(); //设定客户端缓存时间 echo "客户端缓存时间为:".$cache_expire."分钟\n"; session_start(); ?>실행 결과는 다음과 같습니다.
3, 세션 데이터베이스 저장
bool session_set_save_handler(string open,string close,string read,string write,string destroy,string gc)
객체지향프로그래밍을 학습하고 나면 누구나 더 명확하게 이해할 수 있습니다.
function _session_open($save_path,$session_name){ global $handle; $handle =mysql_connect('localhost','root','root')or die('数据库连接失败!'); mysql_select_db('db_database11',$handle)or die('数据库不存在'); return(true); }(2) session_close() 함수를 캡슐화합니다. 코드는 다음과 같습니다.
function _session_close(){ global $handle; mysql_close($handle); return(true); }(3) session_read() 함수를 캡슐화하고 함수에 현재 시간의 UNIX
타임스탬프 를 설정하고 $key를 기준으로 Session 명함 및 내용을 검색합니다. 코드는 다음과 같습니다.
function _session_read($key){ golbal $handle; //全局变量$handle 连接数据库 $time =time(); //设定当前时间 $sql ="select session_data from tb_session where session_key = '$key' and session_time>'$time'"; $result =mysql_query($ssql,$handle); $row =mysql_fetch_array($result); if($row){ return($row['session_data']); }else{ return(false); } }(4) session_write() 함수를 캡슐화합니다. 이 함수는 세션의 만료 시간을 설정하고 쿼리 결과가 비어 있는 경우 세션의 이름과 내용을 찾습니다. 그런 다음 session_id, session_name, 만료 시간,
에 따라 페이지의 세션을 데이터 데이터베이스에 삽입합니다. 쿼리 결과가 비어 있지 않으면 $key를 기준으로 데이터베이스의 Session 저장소 정보를 수정합니다. 코드는 다음과 같습니다.
function _session_write($key,$data){ global $handle; $time = 60*60; $lapse_time =time()+$time; //得到UNIX时间戳 $sql = "select session_data from tb_session where session_key ='$key' and session_time>$lapse_time"; $result =mysql_query($sql,$handle); if(mysql_num_rows($result)==0){ //没有结果 $sql ="insert into tb_session values('$key','$data',$lapse_time)"; $result =mysql_query($sql,$handle); }else{ $sql ="update tb_session set session_key='$key',session_data ='$data',session_time =$lapse_time where session_key ='$key'"; $result =mysql_query($sql,$handle); } return($result); }(5) session_destroy()를 캡슐화하고 $key를 기반으로 데이터베이스에서 Sessin을 삭제합니다. 코드는 다음과 같습니다.
function _session_destroy(){ global $handle; $sql ="delete from tb_session where session_key ='$key'"; $result =mysql_query($sql,$handle); }(6) session_gc를 캡슐화합니다. (), 세션 만료 시간을 기준으로 만료된 세션을 삭제하는 샘플 코드는 다음과 같습니다.
functin _session_gc($expiry_time){ global $handle; $sql ="delete from tb_session where session_expiry_time<$expiry_time"; $result =mysql_query($sql,$handle); return($result); }
위 내용은 PHP 세션의 애플리케이션 코드 예제에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!