Home  >  Article  >  Backend Development  >  How to use php session? session usage_PHP tutorial

How to use php session? session usage_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:49:24997browse

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 if there are too many, and the same browser in the session has the same A site can only have one session_id. Let's take a look at how to use session.

How to use session
For anything related to session, the function session_start() must be called before;

Paying value for session is very simple, such as:


Program code

The code is as follows Copy code
 代码如下 复制代码

Session_start();
$Name = "这是一个Session例子";
Session_Register("Name");//注意,不要写成:Session_Register("$Name");
Echo $_SESSION["Name"];
//之后$_SESSION["Name"]为"这是一个Session例子"
?>

Session_start();

$Name = "This is a Session example";

Session_Register("Name");//Note, do not write: Session_Register("$Name");
Echo $_SESSION["Name"];

//Then $_SESSION["Name"] is "This is a Session example"
代码如下 复制代码

Session_Start();
$_SESSION["name"]="value";
?>

?>

After php4.2, you can pay directly for the session:

 代码如下 复制代码

session_start();
session_unset();
session_destroy();
?>

Program code

The code is as follows Copy code
Session_Start();
$_SESSION["name"]="value";

?>

Cancellation of session can be done like this:

Program code
 代码如下 复制代码
session_start();
echo "登记的用户名为:".$_SESSION["username"]; //输出 登记的用户名为:nostop
?>
The code is as follows Copy code

session_start();

session_unset();

session_destroy();

?>

There is a bug in canceling a certain session variable in php4.2 and above.

Read session
 代码如下 复制代码
session_start();
if(!session_is_registered("gender")){ //判断当前会话变量是否注册
session_register("gender"); //注册变量
}
$gender="女";
echo $_SESSION['gender']; //女
?>
PHP’s built-in $_SESSION variable can easily access the set session variables. Example:
The code is as follows Copy code
session_start();<🎜> echo "Registered user name:".$_SESSION["username"]; //Output Registered user name: nostop<🎜> ?>
Check whether the variable is registered as a session variable session_is_registered Syntax: boobean session_is_registered(string name); 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. Example:
The code is as follows Copy code
Session_start();<🎜> If(!session_is_registered("gender")){ //Determine whether the current session variable is registered<🎜> session_register("gender"); //Register variable<🎜> }<🎜> $gender="female";<🎜> echo $_SESSION['gender']; //Female<🎜> ?>


Access 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.

Example:

The code is as follows Copy code
 代码如下 复制代码

$sessionName = session_name(); //取得当前 Session 名,默认为 PHPSESSID
$sessionID = $_GET[$sessionName]; //取得 Session ID
session_id($sessionID); //使用 session_id() 设置获得的 Session ID
?>

$sessionName = session_name(); //Get the current Session name, the default is PHPSESSID

$sessionID = $_GET[$sessionName]; //Get Session ID

session_id($sessionID); //Use session_id() to set the obtained Session ID

?>

Access current session ID

session_id

 代码如下 复制代码

setcookie:向客户端发送一个 HTTP cookie。
session_start
// 保存一天
$lifeTime = 24 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");
?>

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.

 代码如下 复制代码

// 保存一天
  $lifeTime = 24 * 3600;
  session_set_cookie_params($lifeTime);
  session_start();
  $_session["admin"] = true;
?>

Set the lifetime of Session

The code is as follows Copy code
setcookie: Send an HTTP cookie to the client.

Session_start

代码如下 复制代码

  // 设置一个存放目录
  $savePath = "./session_save_dir/";
  // 保存一天
  $lifeTime = 24 * 3600;
  session_save_path($savePath);
  session_set_cookie_params($lifeTime);
  session_start();
  $_session["admin"] = true;
?>

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']; //空
?>

// Save for one day $lifeTime = 24 * 3600; setcookie(session_name(), session_id(), time() + $lifeTime, "/"); ?> session_set_cookie_params: Sets 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.
The code is as follows Copy code
// Save for one day ​$lifeTime = 24 * 3600;<🎜> session_set_cookie_params($lifeTime);<🎜> session_start();<🎜> ​$_session["admin"] = true;<🎜> ?>
Set the saving path of Session files session_save_path(): Must be called before the session_start() function is called.
The code is as follows Copy code
//Set a storage directory<🎜> ​$savePath = "./session_save_dir/";<🎜> //Save for one day<🎜> ​$lifeTime = 24 * 3600;<🎜> session_save_path($savePath);<🎜> session_set_cookie_params($lifeTime);<🎜> session_start();<🎜> ​$_session["admin"] = true;<🎜> ?> session_start(); //Start Session<🎜> $username='nostop';<🎜> session_register('username'); //Register a variable named username<🎜> echo 'Registered user:'.$_SESSION['username']; //Registered user: nostop Read Session variable<🎜> <🎜>$_SESSION['age']=23; //Declare a variable named age and assign a value<🎜> echo 'Age:'.$_SESSION['age']; //Age: 23<🎜> <🎜>session_unregister('username'); //Unregister the Session variable<🎜> echo $_SESSION['username']; //Empty<🎜> echo $_SESSION['age'];//23<🎜> <🎜>unset($_SESSION['age']); //Unregister the Session variable<🎜> echo 'Registered user:'.$_SESSION['username']; //Empty<🎜> echo 'Age:'.$_SESSION['age']; //Empty<🎜> ?>

Note:

1: There cannot be any output before calling Session_Start(). For example, the following is wrong.


1 line
Line 2 Line 3 Session_Start();//There was already output in the first line
4 lines....
5 lines ?>
==========================================


Tip 1:

Any time ".....headers already sent.........." appears, it means that information is output to the browser before Session_Start().
Remove the output and it will be normal. (This error will also occur in COOKIE, and the cause of the error is the same)

Tip 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 this 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 on the c drive
(2) Open php.ini, find session.save_path, and change it to session.save_path= "c:/tmp"

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/632707.htmlTechArticleSession usage is actually very simple. It can save the data submitted by the user in a session in the form of global variables and generate A unique session_id, so that if there are too many, it will not produce...
Statement:
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