首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

session_create_id

(PHP 7 >= 7.1.0)

session_create_id — Create new session id

Description

代码语言:javascript
复制
string session_create_id ([ string $prefix ] )

session_create_id() is used to create new session id for the current session. It returns collision free session id.

If session is not active, collision check is omitted.

Session ID is created according to php.ini settings.

It is important to use the same user ID of your web server for GC task script. Otherwise, you may have permission problems especially with files save handler.

Parameters

prefix

If prefix is specified, new session id is prefixed by prefix. Not all characters are allowed within the session id. Characters in the range a-z A-Z 0-9 , (comma) and - (minus) are allowed.

Return Values

session_create_id() returns new collision free session id for the current session. If it is used without active session, it omits collision check.

Examples

Example #1 session_create_id() example with session_regenerate_id()

代码语言:javascript
复制
<?php
//?My?session?start?function?support?timestamp?management
function?my_session_start()?{
????session_start();
????//?Do?not?allow?to?use?too?old?session?ID
????if?(!empty($_SESSION['deleted_time'])?&&?$_SESSION['deleted_time']?<?time()?-?180)?{
????????session_destroy();
????????session_start();
????}
}

//?My?session?regenerate?id?function
function?my_session_regenerate_id()?{
????//?Call?session_create_id()?while?session?is?active?to?
????//?make?sure?collision?free.
????if?(session_status()?!=?PHP_SESSION_ACTIVE)?{
????????session_start();
????}
????//?WARNING:?Never?use?confidential?strings?for?prefix!
????$newid?=?session_create_id('myprefix-');
????//?Set?deleted?timestamp.?Session?data?must?not?be?deleted?immediately?for?reasons.
????$_SESSION['deleted_time']?=?time();
????//?Finish?session
????session_commit();
????//?Make?sure?to?accept?user?defined?session?ID
????//?NOTE:?You?must?enable?use_strict_mode?for?normal?operations.
????ini_set('session.use_strict_mode',?0);
????//?Set?new?custome?session?ID
????session_id($newid);
????//?Start?with?custome?session?ID
????session_start();
}

//?Make?sure?use_strict_mode?is?enabled.
//?use_strict_mode?is?mandatory?for?security?reasons.
ini_set('session.use_strict_mode',?1);
my_session_start();

//?Session?ID?must?be?regenerated?when
//??-?User?logged?in
//??-?User?logged?out
//??-?Certain?period?has?passed
my_session_regenerate_id();

//?Write?useful?codes
?>

See Also

  • session_regenerate_id() - Update the current session id with a newly generated one
  • session_start() - Start new or resume existing session

← session_commit

session_decode →

代码语言:txt
复制
 ? 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com