Home >Backend Development >PHP Tutorial >Teach you how to use php session_PHP tutorial

Teach you how to use php session_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:25:44859browse

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 use the same browser in the session. The same site can only have one session_id. Let's take a look at how to use session.
How to use session, anything related to session, you must call the function session_start() before;
Assigning a value to session is very simple, such as:

Copy code The code is as follows:

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"
?>

After php4.2, you can directly assign a value to the session:
Copy the code The code is as follows:

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

Cancel session Like this:
Copy code The code is as follows:

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

Read session

PHP’s built-in $_SESSION variable can easily access the set session variables.

Copy code The code is as follows:

session_start();
echo "Registered User name: ".$_SESSION["username"]; //Output the 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.
Copy code The code is as follows:

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

Copy code The code is as follows:

$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 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 Session

Copy code The code is as follows:

session_start
// 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.
Copy code The code is as follows:

// Save for one day
 $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.

Copy code The code is as follows:

// 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 the 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']); //Log out 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
2 lines3 lines Session_Start();//There was already output in the first line before
4 lines....
5 OK?>

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. (COOKIE This error will also occur, and the reason 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 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"

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/824972.htmlTechArticlePHP session usage is actually very simple. It can save the data submitted by the user in a session as a global variable and will Generate a unique session_id, just to avoid too many...
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