Home Backend Development PHP Tutorial php4的session功能评述(二)

php4的session功能评述(二)

Jun 01, 2016 pm 02:30 PM

比较模糊的是session_decode和session_encode: 
 
bool session_decode(string data); 
session_decode() decodes the session data in data, setting variables 
stored in the session. 
 
bool session_encode(void); 
session_encode() returns a string with the contents of the current 
sessionencoded within. 
 
php manual里面好象没有相关的例子。从字面意思来看decode是把用户的串 
解析出来以后set到session里面,encode则是把session的数据“打包”返回 
给用户。这样看来encode的作用可能更大一些,用户register数据到session 
里面以后应该是用encode把数据取出来的,但是encode返回的东西仍需要处理, 
比如: 
session_register("val1"); 
$val1 = "abcde" 
session_register("val2"); 
$val1 = 1234 
session_register("val3"); 
$val1 = 123.45 
 
那么session_encode返回的东西是: 
 
val1:s:5:"abcde";val2:i:1234;val3:d:123.45; 
 
很明显,'s'是string,'i'和'd'是数字,'s'类型的变量需要长度。 
如果你的session id是aaeebbcfd4455ec2c0d5cb590f8fab74,那么这串东西实际 
上是存在/tmp/aaeebbcfd4455ec2c0d5cb590f8fab74文件当中。 
现在需要你自己把这串东西做处理,析出你想要的session data。很奇怪php4 
没提供一个方便的接口实现已register变量的解析... 或者有我没找着。 
先自己写一个了... 
session_data_init取出所有“打包”的session_data 
session_data_get根据变量名取得数据 
用: 
$data = session_data_init( ); 
$result = session_data_get($data, "val1"); 
就可以把val1的数据取出来。 
 
 
/* 
* get all date registered in the session 
*/ 
function session_data_init( ) { 
  $sessionData = session_encode(); 
  return $sessionData; 
} 
?> 
 
 
/* 
* extract one variable from enconded session data 
*/ 
function session_data_get($data, $name) { 
  $matchStr = $name."|"; 
  $matchStart = strpos($data, $matchStr); 
  if ($matchStart == 0) { 
    if (strlen($data)     $tmpStr = substr($data, 0, strlen($matchStr)); 
    if (strcmp($tmpStr, $matchStr) != 0) return ""; 
  } 
 
  $typeStart = $matchStart + strlen($matchStr); 
  $dataType = substr($data, $typeStart, 1); 
 
  if (strcmp($dataType, "s") == 0) {  /* string */ 
    $lenStart = $typeStart + 2; 
    $lenEnd = strpos($data, ":", $lenStart) - 1; 
    $lenLen = $lenEnd - $lenStart + 1; 
    $strLen = substr($data, $lenStart, $lenLen); 
 
    $strStart = $lenEnd + 3; 
    $strResult = substr($data, $strStart, $strLen); 
    return $strResult; 
  } else if (strcmp($dataType, "i") == 0 || 
    strcmp($dataType, "d") == 0) { /* number */ 
    $numStart = $typeStart + 2; 
    $numEnd = strpos($data, ";", $numStart) - 1; 
    $numLen = numEnd - numStart + 1; 
    $numResult = substr($data, $numStart, $numLen);
    return $numResult;
  } else {
    return "";
  }
}
?>         
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

Describe the SOLID principles and how they apply to PHP development. Describe the SOLID principles and how they apply to PHP development. Apr 03, 2025 am 12:04 AM

The application of SOLID principle in PHP development includes: 1. Single responsibility principle (SRP): Each class is responsible for only one function. 2. Open and close principle (OCP): Changes are achieved through extension rather than modification. 3. Lisch's Substitution Principle (LSP): Subclasses can replace base classes without affecting program accuracy. 4. Interface isolation principle (ISP): Use fine-grained interfaces to avoid dependencies and unused methods. 5. Dependency inversion principle (DIP): High and low-level modules rely on abstraction and are implemented through dependency injection.

How to automatically set permissions of unixsocket after system restart? How to automatically set permissions of unixsocket after system restart? Mar 31, 2025 pm 11:54 PM

How to automatically set the permissions of unixsocket after the system restarts. Every time the system restarts, we need to execute the following command to modify the permissions of unixsocket: sudo...

Explain the concept of late static binding in PHP. Explain the concept of late static binding in PHP. Mar 21, 2025 pm 01:33 PM

Article discusses late static binding (LSB) in PHP, introduced in PHP 5.3, allowing runtime resolution of static method calls for more flexible inheritance.Main issue: LSB vs. traditional polymorphism; LSB's practical applications and potential perfo

How to send a POST request containing JSON data using PHP's cURL library? How to send a POST request containing JSON data using PHP's cURL library? Apr 01, 2025 pm 03:12 PM

Sending JSON data using PHP's cURL library In PHP development, it is often necessary to interact with external APIs. One of the common ways is to use cURL library to send POST�...

Framework Security Features: Protecting against vulnerabilities. Framework Security Features: Protecting against vulnerabilities. Mar 28, 2025 pm 05:11 PM

Article discusses essential security features in frameworks to protect against vulnerabilities, including input validation, authentication, and regular updates.

How to debug CLI mode in PHPStorm? How to debug CLI mode in PHPStorm? Apr 01, 2025 pm 02:57 PM

How to debug CLI mode in PHPStorm? When developing with PHPStorm, sometimes we need to debug PHP in command line interface (CLI) mode...

See all articles