> 백엔드 개발 > PHP 튜토리얼 > PHP3에서 SESSION 함수 구현하기 (1)

PHP3에서 SESSION 함수 구현하기 (1)

WBOY
풀어 주다: 2016-07-29 08:34:34
원래의
743명이 탐색했습니다.

SESSION函数库:session.inc.php3
if (!isset($__session_inc__)){
$__sessi
//require("cookie.inc.php3");
# --------------------------------- ---------------------  
# 세션 관리 v1.0 21.6.1998  
# (c) Wild Karl Heinz   
#  
# 이 포함 핸들 세션 기반 변수 처리  
#  
# 자유롭게 사용하시기 바랍니다. 좀 더 기능적으로 만들면  
# 사본을 보내주시면 좋을 것 같습니다.  
#  
# 잊지 마세요 - Mysql_connect !  
#  
# 데이터베이스 구조  
# 'session' 테이블의 테이블 구조  
#  
# CREATE TABLE 세션 (  
# id int(11) DEFAULT '0' NOT NULL auto_increment ,  
# sid varchar(20) DEFAULT '' NOT NULL,  
# val blob,  
# times timestamp(14),  
# PRIMARY KEY (id),  
# KEY sid ( sid),  
# 고유 sid_2(sid)  
# );  
#  
# 여기에서는 DB에서 이전 세션을 삭제하는 크론 작업이 누락됩니다.  
# ----------------------- -------------------------------  
// 请注意被注释掉的CREATE TABLE语句,
// 你需要에서 你所使사용용数据库上执行这条语句,
// 表name也可以不是session,那么就需要设置하단면 $sess_table变weight了。
// 此处你需要设置库name, 和表name.
// 不过一般建议就使usesession작성명
$sess_db = 'dbname';  
$sess_table = '세션';  
# --------------------------------- ------  
# Session_CheckID - 检查、设置并返回 Session-ID  
# 参数......: cookie保存时间(以分钟计)
# 也可不设置表示这쿠키只在当前session이 있습니다
# 这其实就象ASP中SESSION的时效一样。
# 返回值....: 一个唯一的Session-ID (작성쿠키存储)
# ---- ------------------------------------------------  
function Session_CheckID( $min )  
{
global $sess_sid;  
if( !$sess_sid ) {  
$sess_sid = uniqid( SC ); //取得一个唯一的随机数
/*
if( $min > 0 ) {  
SetCookie("sess_sid", $sess_sid, time() ($min*60), "/" , "", 0 );  
}  
else {  
SetCookie("sess_sid", $sess_sid, "", "/", "", 0 );  반환( 거짓 );  
}  
else {  
return( true );  
}  
}  
# ------------------------- -------  
# str2arr - 将字符串转换成session数组
# 参数.....: string
# 返回值 ... : 全局数组 全局数组 全局数组 + (세션) # session[username]="yourid"
# session[userpass]="12345"
#请注意函数split(),each(),list(), eval()의 사용 방법입니다.
# --------------------------------- - ------------
function str2arr( $ts )
{
global $session
$vals = Split( "&", $ts )
while( list($key,$val) = 각각($vals) ) {
list( $name, $wert ) = Split( "=", $val )
if( $val ) eval ( "$$name = "$wert";" )
}
}
# ----------------------- --- ----------------------------------
# session_read() - 세션에서 데이터 가져오기 테이블을 세션 배열로 변환
# 매개변수...: 없음
# 반환 값...: 데이터를 읽으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
#참고... ... ...: str2arr() 함수가 사용됩니다
# ------------------- --- ----------
function session_read()
{
# 세션 변수를 유지하기 위한 해시 배열
global $ session;
global $sess_sid, $sess_db, $sess_table, $sess_error;
$sel = "sid = '$sess_sid'인 $sess_table에서 값을 선택하세요.
$res = mysql_db_query( $sess_db, $sel );
if( mysql_numrows( $res ) ) {
$val = mysql_result( $res, 0, "val" )
str2arr( $val ); );
return( true );
}
else {
return( false )
$sess_error = mysql_error(); --------------------- --- ---
# Split_Array() - 세션 배열을 문자열로 변환
# 매개 변수...: 배열
# 반환 값...: 배열 변환 들어오는 문자열
#
# Rasmus에게 감사드립니다(이 사람은 PHP의 창시자인 것 같습니다)
# 참고: 세션 배열을 문자열로 변환합니다
# 예: session[username]=" yourid"
# session[userpass] ="12345"
#은 "session[username]=yourid&session[userpass]=12345"로 변환됩니다.
#동시에 이 함수는 배열의 요소를 고려합니다. data
#이 함수는 재귀 함수로 설계되었습니다
# ----------------- --- ----------
함수 Split_Array( $arr, $a = "", $b = "", $c = "" )
{
while( list( $key, $val ) = 각각( $arr ) ) {
if( is_array( $val ) ) {
$ts .= Split_Array( $arr[ $ key ],
( strlen( $a ) ? $a : $key ),
( strlen( $b ) ? $b : ( strlen( $a ) ? $key : "" ) ),
( strlen( $c ) ? $c : ( strlen( $b ) ? $key : "" ) ) )
}
else {
$ts .= "세션"
$ts .= $a ? "[$a]" : "";
$ts .= $b ? "[$b]" :
$ts .= $c c]" : "";
$ts .= "[$key]=$val&";
}
}
return( $ts );
}
# - ------------------------------------------------- -
# session_write - 세션 배열을 문자열로 변환한 후 세션 테이블에 저장
# 매개변수: 없음
# 반환값...: 정상적으로 저장되면 true, 그렇지 않으면 false 반환
# ---------------------------------- --- ----
function session_write()
{
# 세션 변수를 유지하기 위한 해시 배열
global $session
global $sess_sid, $sess_db, $sess_table; 🎜>global $sess_error; 🎜>$ts = Split_Array( $session );
if( $ts > "" ) { $ts = substr( $ts, 0, strlen( $ts ) - 1 );
$res = mysql_db_query( $sess_db, "sid = '$sess_s'인 세션에서 * 선택")
if( mysql_numrows( $res ) == 0 ) {
$sel = "다음에 삽입 $sess_table ( id, sid , val, times ) ";
$sel .= "values( 0, '$sess_sid', '$ts', NULL )";
}
else {
$sel = "$sess_table set val = '$ts', ";
$sel .= "times = NULL where sid = '$sess_sid'"
if( !mysql_db_query( $sess_db, $sel ) ) {
$sess_error = mysql_error();
return( false )
}
else { return( true ) }
}
#--------------------- --
# session_del - 현재 세션을 모두 지우고
# 세션 테이블에서 현재 세션과 관련된 기록을 삭제합니다
# 매개변수...: 임의의 세션 ID
# 반환 값... : 없음
# ------------------------------- --- -
function session_del()
{
global $session, $sess_db, $sess_table, $sess_sid
$sel = "sid = '$sess_sid'인 $sess_table에서 삭제;" ;
if( !mysql_db_query( $sess_db, $sel ) ) {
$sess_error = mysql_error()
}
$sess_sid = '''
}
?> ;
원작자: 미상

이상 내용의 측면을 포함하여 PHP3(1)에서 SESSION을 구현하는 기능을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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