Why don't I use session_PHP tutorial
在考虑session的问题上,我最终放弃了session: 最后我选择了myql的heap表来处理session,并且把session处理和online在线用户统计结合起来。 下面给出代码为我的一个实例(没提供其他的细节了,具体使用要相应修改) `sid` char( 32 ) NOT NULL ,
1、原本的session是使用文件来管理的。文件系统的好坏直接影响session的性能,尤其当有几K人同时在线的时候,尤其突出。解决方法有两个:数据库和文件(使用哈希路径)。
2、原有session的扩展性和可控制性不好。不利于结合我现有的系统。
3、在选用数据库的时候,我并没有选择sqlite,上次我测试sqlite效率在win xp上效率没有想象中的好。
/**
* 处理在线用户和对session的模拟
* CREATE TABLE `webqq_session` (
`uid` mediumint( 8 ) NOT NULL ,
`username` char( 80 ) NOT NULL ,
`ismember` tinyint( 1 ) NOT NULL ,
`logintime` int( 10 ) NOT NULL ,
`activetime` int( 10 ) NOT NULL ,
PRIMARY KEY ( `sid` )
) ENGINE = HEAP DEFAULT CHARSET = gb2312
* @author:feifengxlq
* @since:2006-10-23
* @copyright:http://www.phpobject. net
* Note: The use of this file must be combined with other files: such as cookie filtering, some basic functions and database operation classes
*/
class session
{
var $mysql ;
var $cookie_id=webqq_sid;
var $session=array();
var $max_time=1200;//The default maximum time is 20 minutes
function __construct()
{
$this->mysql=new module(TB_PREX._session);//Requires external support
$this->start();
}
function start()
{
if(empty($_COOKIE[$this->cookie_id]))
{
//Initialize session
$this- >create();
}else{
->mysql->detail(where sid=.$sid.))
this-> ;mysql->update($row,where sid=.$sid.);
}
Delete users who are not online in the database
$ this->mysql->delete(where activetime+.$this->max_time.<.time());
}
function register($name,$value,$update= false)
{
if(array_key_exists($name,$this->session)){
$this->session[$name]=$value;
}
if ($update)$this->update();
}
function registry($name=)
{
if(empty($name)) return $this-> ;session;
if(array_key_exists($name,$this->session)){
return $this->session[$name];
}
}
//Update the session information in the database
function update()
{
$row[uid]=$this->session[uid];
$row[username]= $this->session[username];
$row[ismember]=$this->session[ismember];
$row[logintime]=$this->session[logintime];
$row[activetime]=$this->session[activetime];
$this->mysql->update($row,where sid=.$this->session[sid].);
}
/*-------------------The following are private methods------------------ ------------------------------------**/
function create()
{
$nowtime=time();
$sid=md5(0.$nowtime.getip());//The getip() function needs to be defined in advance: get the customer’s IP address
setcookie($ this->cookie_id,$sid,$nowtime+3600*24);//Default 24 hours
[username]=guest;
$row[ismember]=0; ->add($row);//Write to database
http://www.bkjia.com/PHPjc/508237.html
www.bkjia.com
true
TechArticle

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Questions about purple slash areas in Flex layouts When using Flex layouts, you may encounter some confusing phenomena, such as in the developer tools (d...

The H5 page needs to be maintained continuously, because of factors such as code vulnerabilities, browser compatibility, performance optimization, security updates and user experience improvements. Effective maintenance methods include establishing a complete testing system, using version control tools, regularly monitoring page performance, collecting user feedback and formulating maintenance plans.

Is JavaScript available to run without HTML5? The JavaScript engine itself can run independently. Running JavaScript in a browser environment depends on HTML5 because it provides the standardized environment required to load and execute code. The APIs and features provided by HTML5 are crucial to modern JavaScript frameworks and libraries. Without HTML5 environments, many JavaScript features are difficult to implement or cannot be implemented.

Discussion on using custom stylesheets in Safari Today we will discuss a custom stylesheet application problem for Safari browser. Front-end novice...

The advantages of H5 page production include: lightweight experience, fast loading speed, and improving user retention. Cross-platform compatibility, no need to adapt to different platforms, improving development efficiency. Flexibility and dynamic updates, no audit required, making it easier to modify and update content. Cost-effective, lower development costs than native apps.

The main reasons why you cannot log in to MySQL as root are permission problems, configuration file errors, password inconsistent, socket file problems, or firewall interception. The solution includes: check whether the bind-address parameter in the configuration file is configured correctly. Check whether the root user permissions have been modified or deleted and reset. Verify that the password is accurate, including case and special characters. Check socket file permission settings and paths. Check that the firewall blocks connections to the MySQL server.

How to use class name style correctly in element-plus? In the process of using element-plus, many developers will encounter a problem: why in their own...

How to solve the display problem caused by user agent style sheets? When using the Edge browser, a div element in the project cannot be displayed. After checking, I posted...
