PHP session usage is actually very simple. It can save the data submitted by the user in a session in the form of a global variable and generate a unique session_id. This is to avoid confusion and the same browser and the same site in the session. There can only be one session_id. Let's take a look at how to use session.
How to use session, anything related to session must call the function session_start() before;
Assigning a value to the session is very simple, such as:
<?php Session_start(); $Name = "这是一个Session例子"; Session_Register("Name");//注意,不要写成:Session_Register("$Name"); Echo $_SESSION["Name"]; //之后$_SESSION["Name"]为"这是一个Session例子" ?>
After php4.2, you can directly assign a value to the session:
<?PHP Session_Start(); $_SESSION["name"]="value"; ?>
Cancel the session like this :
<?php session_start(); session_unset(); session_destroy(); ?>
Reading session
PHP’s built-in $_SESSION variable can easily access the set session variables.
<?php session_start(); echo "登记的用户名为:".$_SESSION["username"]; //输出 登记的用户名为:nostop ?>
This function can check whether the specified variable has been registered in the current session. The parameter name is the variable name to be checked. If successful, the logical value true is returned.
<?php session_start(); if(!session_is_registered("gender")){ //判断当前会话变量是否注册 session_register("gender"); //注册变量 } $gender="女"; echo $_SESSION['gender']; //女 ?>
Access the current session name session_name
Syntax: boolean session_name(string [name]);
This function can get or reset the name of the current session. If there is no parameter name, it means to get the current session name, and adding the parameter means setting the session name to the parameter name.
<?php $sessionName = session_name(); //取得当前 Session 名,默认为 PHPSESSID $sessionID = $_GET[$sessionName]; //取得 Session ID session_id($sessionID); //使用 session_id() 设置获得的 Session ID ?>
Access the current session identification number session_id
Syntax: boolean session_id(string [id]);
This function can obtain or reset the identification number of the currently stored session. If there is no parameter id, it means that only the identification number of the current session is obtained. If the parameter is added, it means that the identification number of the session is set to the newly specified id.
Set the lifetime of the Session
<?php session_start // 保存一天 $lifeTime = 24 * 3600; setcookie(session_name(), session_id(), time() + $lifeTime, "/"); ?>
session_set_cookie_params: Set the lifetime of the Session. This function must be called before the session_start() function is called.
If the client uses IE 6.0, the session_set_cookie_params(); function will have some problems setting cookies, so we still call the setcookie function manually to create cookies.
<?php // 保存一天 $lifeTime = 24 * 3600; session_set_cookie_params($lifeTime); session_start(); $_session["admin"] = true; ?>
Set the save path of the Session file
session_save_path(): Must be called before the session_start() function is called.
<?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']; //空 ?>
Note:
1: There cannot be any output before calling Session_Start(). For example, the following is wrong.
Line 1
Line 2 PHP
Line 3 Session_Start(); // Before the first There are already output lines
4 lines...
5 lines?>
Tips 1:
Whenever "...headers already sent..." appears. , that is, information is output to the browser before Session_Start().
It will be normal if you remove the output. (This error will also occur in COOKIE, the cause of the error is the same)
Tips 2:
If your Session_Start() is placed in a loop statement, And it is difficult to determine where the information was output to the browser before. You can use the following method:
Line 1
.....Here is your program... ...
2: What is the error?
Warning: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) failed:....
Because you did not specify the storage path of the session file.
Solution:
(1) Create the folder tmp in the c drive
(2) Open php.ini, find session.save_path, and change it to session.save_path= "c:/tmp"
Please read more related articles that teach you how to use php session Follow PHP Chinese website!