{"id":752,"date":"2009-11-21T20:39:00","date_gmt":"2009-11-21T12:39:00","guid":{"rendered":""},"modified":"2013-11-26T14:15:27","modified_gmt":"2013-11-26T06:15:27","slug":"php%e4%b8%adsession%e7%94%a8%e6%b3%95%e8%af%a6%e8%a7%a3","status":"publish","type":"post","link":"https:\/\/kyle.ai\/blog\/752.html","title":{"rendered":"PHP\u4e2dsession\u7528\u6cd5\u8be6\u89e3"},"content":{"rendered":"<p>PHP\u4f1a\u8bdd\u5373SESSION\u662f\u6307\u7528\u6237\u4ece\u8fdb\u5165\u7f51\u7ad9\u5230\u5173\u95ed\u7f51\u7ad9\u8fd9\u6bb5\u65f6\u95f4\u5185\u6d3b\u52a8\u7684\u4e00\u79cd\u673a\u5236\uff0c\u5b83\u63d0\u4f9b\u4e86\u6240\u6709\u7f51\u9875\u90fd\u5171\u540c\u4f7f\u7528\u7684\u516c\u5171\u53d8\u91cf\u5b58\u8d2e\u673a\u5236\u3002\u90a3\u4e48SESSION\u5230\u5e95\u6709\u4ec0\u4e48\u7528\u5904\u5462\uff1f\u7f51\u4e0a\u8d2d\u7269\u65f6\u5927\u5bb6\u90fd\u7528\u8fc7\u8d2d\u7269\u8f66\uff0c\u4f60 \u53ef\u4ee5\u968f\u65f6\u628a\u4f60\u9009\u8d2d\u7684\u5546\u54c1\u52a0\u5165\u5230\u8d2d\u7269\u8f66\u4e2d\uff0c\u6700\u540e\u518d\u53bb\u6536\u94f6\u53f0\u7ed3\u5e10\u3002\u5728\u6574\u4e2a\u8fc7\u7a0b\u4e2d\u8d2d\u7269\u8f66\u4e00\u76f4\u626e\u6f14\u7740\u4e34\u65f6\u5b58\u8d2e\u88ab\u9009\u5546\u54c1\u7684\u89d2\u8272\uff0c\u7528\u5b83\u8ffd\u8e2a\u7528\u6237\u5728\u7f51\u7ad9\u4e0a\u7684\u6d3b\u52a8\u60c5\u51b5\uff0c\u8fd9\u5c31\u662fSESSION\u7684\u4f5c\u7528\u3002<\/p>\n<p>SESSION\u7684\u53d1\u660e\u586b\u8865\u4e86HTTP\u534f\u8bae\u7684\u5c40\u9650\uff0cHTTP\u534f\u8bae\u88ab\u8ba4\u4e3a\u662f\u65e0\u72b6\u6001\u534f\u8bae\uff0c\u5f53\u5b83\u5728\u670d\u52a1\u7aef\u5b8c\u6210\u54cd\u5e94\u4e4b\u540e\uff0c\u670d\u52a1\u5668\u5c31\u5931\u53bb\u4e86\u4e0e\u8be5\u6d4f\u89c8\u5668\u7684\u8054\u7cfb\u3002\u4f1a\u8bdd\u7684\u53d1\u660e\u4f7f\u5f97\u4e00\u4e2a\u7528\u6237\u5728\u591a\u4e2a\u9875\u9762\u95f4\u5207\u6362\u65f6\u80fd\u591f\u4fdd\u5b58\u4ed6\u7684\u4fe1\u606f\u3002<br \/>\n\u5728PHP3\u7248\u672c\u672a\u76f4\u63a5\u63d0\u4f9bsession\u529f\u80fd\uff0c\u6211\u4eec\u53ea\u80fd\u7528\u5176\u5b83\u529e\u6cd5\u6765\u5b9e\u73b0\uff0c\u6bd4\u5982\u7528PHPLIB\u3002\u5982\u679c\u8bf4PHP4\u4e0ePHP3\u76f8\u6bd4\uff0c\u5b83\u6700\u5927\u7684\u8fdb\u6b65\u5c31\u662f\u63d0\u4f9b\u4e86SESSION<\/p>\n<p>Session\u57fa\u7840\u77e5\u8bc6<\/p>\n<p>\u8981\u4f7f\u7528session\u9700\u8981PHP4.1\u4ee5\u4e0a\u7684\u7248\u672c\uff0c\u800c\u4e14\u9700\u8981\u628aphp.ini\u4e2d\u7684register_globle=Off\u8bbe\u6210register_globle=On\u3002\u53e6\u5916\uff0csession.cookie_path = \/ \u8fd9\u884c\u4e0d\u6613\u66f4\u6539\u3002<br \/>\nPHP\u4e2d\u7684session\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u662f\u4f7f\u7528\u5ba2\u6237\u7aef\u7684Cookie\u3002\u5f53\u5ba2\u6237\u7aef\u7684Cookie\u88ab\u7981\u7528\u65f6\uff0c\u4f1a\u81ea\u52a8\u901a\u8fc7Query_String\u6765\u4f20\u9012\u3002<br \/>\nPhp\u5904\u7406\u4f1a\u8bdd\u7684\u51fd\u6570\u4e00\u5171\u670911\u4e2a\uff0c\u6211\u4eec\u8be6\u7ec6\u4ecb\u7ecd\u4e00\u4e0b\u5c06\u8981\u7528\u5230\u51e0\u4e2a\u51fd\u6570\u3002<\/p>\n<p>1\u3001 session_start<br \/>\n\u51fd\u6570\u529f\u80fd\uff1a\u5f00\u59cb\u4e00\u4e2a\u4f1a\u8bdd\u6216\u8005\u8fd4\u56de\u5df2\u7ecf\u5b58\u5728\u7684\u4f1a\u8bdd\u3002<br \/>\n\u51fd\u6570\u539f\u578b\uff1aboolean session_start(void);<br \/>\n\u8fd4\u56de\u503c\uff1a\u5e03\u5c14\u503c<br \/>\n\u529f\u80fd\u8bf4\u660e\uff1a\u8fd9\u4e2a\u51fd\u6570\u6ca1\u6709\u53c2\u6570\uff0c\u4e14\u8fd4\u56de\u503c\u5747\u4e3atrue\u3002\u6700\u597d\u5c06\u8fd9\u4e2a\u51fd\u6570\u7f6e\u4e8e\u6700\u5148\uff0c\u800c\u4e14\u5728\u5b83\u4e4b\u524d\u4e0d\u80fd\u6709\u4efb\u4f55\u8f93\u51fa\uff0c\u5426\u5219\u4f1a\u62a5\u8b66\uff0c\u5982\uff1aWarning: Cannot send session cache limiter \u2013 headers already sent (output started at \/usr\/local\/apache\/htdocs\/cga\/member\/1.php:2) in \/usr\/local\/apache\/htdocs\/cga\/member\/1.php on line 3<\/p>\n<p>2\u3001 session_register<br \/>\n\u51fd\u6570\u529f\u80fd\uff1a\u767b\u8bb0\u4e00\u4e2a\u65b0\u7684\u53d8\u91cf\u4e3a\u4f1a\u8bdd\u53d8\u91cf<br \/>\n\u51fd\u6570\u539f\u578b\uff1aboolean session_register(string name);<br \/>\n\u8fd4\u56de\u503c\uff1a\u5e03\u5c14\u503c\u3002<br \/>\n\u529f\u80fd\u8bf4\u660e\uff1a\u8fd9\u4e2a\u51fd\u6570\u662f\u5728\u5168\u5c40\u53d8\u91cf\u4e2d\u589e\u52a0\u4e00\u4e2a\u53d8\u91cf\u5230\u5f53\u524d\u7684SESSION\u4e2d\uff0c\u53c2\u6570name\u5c31\u662f\u60f3\u8981\u52a0\u5165\u7684\u53d8\u91cf\u540d\uff0c\u6210\u529f\u5219\u8fd4\u56de\u903b\u8f91\u503ctrue\u3002\u53ef\u4ee5\u7528$_SESSION[name]\u6216$HTTP_SESSION_VARS[name]\u7684\u5f62\u5f0f\u6765\u53d6\u503c\u6216\u8d4b\u503c\u3002<\/p>\n<p>3\u3001 session_is_registered<br \/>\n\u51fd\u6570\u529f\u80fd\uff1a\u68c0\u67e5\u53d8\u91cf\u662f\u5426\u88ab\u767b\u8bb0\u4e3a\u4f1a\u8bdd\u53d8\u91cf\u3002<br \/>\n\u51fd\u6570\u539f\u578b\uff1aboobean session_is_registered(string name);<br \/>\n\u8fd4\u56de\u503c\uff1a\u5e03\u5c14\u503c<br \/>\n\u529f\u80fd\u8bf4\u660e\uff1a\u8fd9\u4e2a\u51fd\u6570\u53ef\u68c0\u67e5\u5f53\u524d\u7684session\u4e4b\u4e2d\u662f\u5426\u5df2\u6709\u6307\u5b9a\u7684\u53d8\u91cf\u6ce8\u518c\uff0c\u53c2\u6570name\u5c31\u662f\u8981\u68c0\u67e5\u7684\u53d8\u91cf\u540d\u3002\u6210\u529f\u5219\u8fd4\u56de\u903b\u8f91\u503ctrue\u3002<\/p>\n<p>4\u3001 session_unregister<br \/>\n\u51fd\u6570\u529f\u80fd\uff1a\u5220\u9664\u5df2\u6ce8\u518c\u7684\u53d8\u91cf\u3002<br \/>\n\u51fd\u6570\u539f\u578b\uff1aboolean session_session_unregister(string name);<br \/>\n\u8fd4\u56de\u503c\uff1a\u5e03\u5c14\u503c<br \/>\n\u529f\u80fd\u8bf4\u660e\uff1a\u8fd9\u4e2a\u51fd\u6570\u5728\u5f53\u524d\u7684session\u4e4b\u4e2d\u5220\u9664\u5168\u5c40\u53d8\u91cf\u4e2d\u7684\u53d8\u91cf\u3002\u53c2\u6570name\u5c31\u662f\u6b32\u5220\u9664\u7684\u53d8\u91cf\u540d\uff0c\u6210\u529f\u5219\u8fd4\u56detrue.<\/p>\n<p>5\u3001 Session_destroy<br \/>\n\u51fd\u6570\u529f\u80fd\uff1a\u7ed3\u675f\u5f53\u524d\u7684\u4f1a\u8bdd\uff0c\u5e76\u6e05\u7a7a\u4f1a\u8bdd\u4e2d\u7684\u6240\u6709\u8d44\u6e90\u3002<br \/>\n\u51fd\u6570\u539f\u578b\uff1aboolean session destroy(void);<br \/>\n\u8fd4\u56de\u503c\uff1a\u5e03\u5c14\u503c\u3002<br \/>\n\u529f\u80fd\u8bf4\u660e\uff1a\u8fd9\u4e2a\u51fd\u6570\u7ed3\u675f\u5f53\u524d\u7684session\uff0c\u6b64\u51fd\u6570\u6ca1\u6709\u53c2\u6570\uff0c\u4e14\u8fd4\u56de\u503c\u5747\u4e3atrue<br \/>\n\u4e0a\u9762\u4ecb\u7ecd\u51fd\u6570\u4e0b\u6587\u5c06\u4f1a\u7528\u5230\uff0c\u4f46\u8fd8\u6709\u4e00\u4e9b\u6709\u5173session\u7684\u51fd\u6570\u4e5f\u4ecb\u7ecd\u4e00\u4e0b\uff1a<\/p>\n<p>6\u3001 session_encode<br \/>\n\u51fd\u6570\u529f\u80fd\uff1asesssion\u4fe1\u606f\u7f16\u7801<br \/>\n\u51fd\u6570\u539f\u578b\uff1astring session_encode(void);<br \/>\n\u8fd4\u56de\u503c\uff1a\u5b57\u7b26\u4e32<br \/>\n\u529f\u80fd\u8bf4\u660e\uff1a\u8fd4\u56de\u7684\u5b57\u7b26\u4e32\u4e2d\u5305\u542b\u5168\u5c40\u53d8\u91cf\u4e2d\u5404\u53d8\u91cf\u7684\u540d\u79f0\u4e0e\u503c\uff0c\u5f62\u5f0f\u5982\uff1aa|s:12:&#8221;it is a test&#8221;;c|s:4:&#8221;lala&#8221;; a\u662f\u53d8\u91cf\u540d s:12\u4ee3\u8868\u53d8\u91cfa\u7684\u503c&#8221;it is a test\u7684\u957f\u5ea6\u662f12 \u53d8\u91cf\u95f4\u7528\u5206\u53f7\u201d;\u201d\u5206\u9694\u3002<\/p>\n<p>7\u3001 session_decode<br \/>\n\u51fd\u6570\u529f\u80fd\uff1asesssion\u4fe1\u606f\u89e3\u7801<br \/>\n\u51fd\u6570\u539f\u578b\uff1aboolean session_decode (string data)<br \/>\n\u8fd4\u56de\u503c\uff1a\u5e03\u5c14\u503c<br \/>\n\u529f\u80fd\u8bf4\u660e\uff1a\u8fd9\u4e2a\u51fd\u6570\u53ef\u5c06session\u4fe1\u606f\u89e3\u7801\uff0c\u6210\u529f\u5219\u8fd4\u56de\u903b\u8f91\u503ctrue<\/p>\n<p>8\u3001 session_name<br \/>\n\u51fd\u6570\u529f\u80fd\uff1a\u5b58\u53d6\u5f53\u524d\u4f1a\u8bdd\u540d\u79f0<br \/>\n\u51fd\u6570\u539f\u578b\uff1aboolean session_name(string [name]);<br \/>\n\u8fd4\u56de\u503c\uff1a\u5b57\u7b26\u4e32<br \/>\n\u529f\u80fd\u8bf4\u660e\uff1a\u8fd9\u4e2a\u51fd\u6570\u53ef\u53d6\u5f97\u6216\u91cd\u65b0\u8bbe\u7f6e\u5f53\u524dsession\u7684\u540d\u79f0\u3002\u82e5\u65e0\u53c2\u6570name\u5219\u8868\u793a\u83b7\u53d6\u5f53\u524dsession\u540d\u79f0\uff0c\u52a0\u4e0a\u53c2\u6570\u5219\u8868\u793a\u5c06session\u540d\u79f0\u8bbe\u4e3a\u53c2\u6570name<\/p>\n<p>9\u3001 session_id<br \/>\n\u51fd\u6570\u529f\u80fd\uff1a\u5b58\u53d6\u5f53\u524d\u4f1a\u8bdd\u6807\u8bc6\u53f7<br \/>\n\u51fd\u6570\u539f\u578b\uff1aboolean session_id(string [id]);<br \/>\n\u8fd4\u56de\u503c\uff1a\u5b57\u7b26\u4e32<br \/>\n\u529f\u80fd\u8bf4\u660e\uff1a\u8fd9\u4e2a\u51fd\u6570\u53ef\u53d6\u5f97\u6216\u91cd\u65b0\u8bbe\u7f6e\u5f53\u524d\u5b58\u653esession\u7684\u6807\u8bc6\u53f7\u3002\u82e5\u65e0\u53c2\u6570id\u5219\u8868\u793a\u53ea\u83b7\u53d6\u5f53\u524dsession\u7684\u6807\u8bc6\u53f7\uff0c\u52a0\u4e0a\u53c2\u6570\u5219\u8868\u793a\u5c06session\u7684\u6807\u8bc6\u53f7\u8bbe\u6210\u65b0\u6307\u5b9a\u7684id<\/p>\n<p>10\u3001 session_unset<br \/>\n\u51fd\u6570\u529f\u80fd\uff1a\u5220\u9664\u6240\u6709\u5df2\u6ce8\u518c\u7684\u53d8\u91cf\u3002<br \/>\n\u51fd\u6570\u539f\u578b\uff1avoid session_unset (void)<br \/>\n\u8fd4\u56de\u503c\uff1a\u5e03\u5c14\u503c<br \/>\n\u529f\u80fd\u8bf4\u660e\uff1a\u8fd9\u4e2a\u51fd\u6570\u548cSession_destroy\u4e0d\u540c\uff0c\u5b83\u4e0d\u7ed3\u675f\u4f1a\u8bdd\u3002\u5c31\u5982\u540c\u7528\u51fd\u6570session_unregister\u9010\u4e00\u6ce8\u9500\u6389\u6240\u6709\u7684\u4f1a\u8bdd\u53d8\u91cf\u3002<\/p>\n<p>\u7f16\u7a0b\u601d\u8def<\/p>\n<p>\u5728\u793e\u533a\u3001\u8bba\u575b\u4e2d\uff0c\u6211\u4eec\u5e38\u80fd\u770b\u5230\u5f53\u524d\u5728\u7ebf\u7684\u4f1a\u5458\uff0c\u4f7f\u8bbf\u95ee\u8005\u6709\u5bbe\u81f3\u5982\u5f52\u4e4b\u611f\u3002\u4f46\u8fd9\u79cd\u7a0b\u5e8f\u662f\u600e\u4e48\u505a\u51fa\u6765\u7684\u5462\uff1f<br \/>\n\u6d41\u7a0b\u5982\u4e0b\uff1a<br \/>\n\u5efa\u8868user\uff0c\u4fdd\u5b58\u6ce8\u518c\u7528\u6237\u4fe1\u606f\u3002<\/p>\n<p>userid Int(10) \u7528\u6237\u5e8f\u5217\u53f7 auto_increment \u5173\u952e\u5b57<\/p>\n<p>username Varchar(50) \u7528\u6237\u533f\u79f0<\/p>\n<p>userpwd Varchar(50) \u5bc6\u7801<\/p>\n<p>email Varchar(50) \u7535\u5b50\u4fe1\u7bb1<\/p>\n<p>oicq Varchar(50) OICQ\u53f7<\/p>\n<p>signature mediumtext \u7b7e\u540d<\/p>\n<p>imgurl Varchar(50) \u5934\u50cf<\/p>\n<p>joindate Varchar(50) \u52a0\u5165\u65f6\u95f4<\/p>\n<p>\u5efa\u7c7b\u6587\u4ef6user.php \u5b9a\u4e49\u51fd\u6570<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\nexist($username)\u786e\u8ba4\u65b0\u6ce8\u518c\u7528\u6237\u662f\u4e0d\u662f\u5df2\u7ecf\u5b58\u5728\r\nnsert($username,$userpwd,$email,$oicq,$imgurl,$signature)\u63d2\u5165\u6ce8\u518c\u7528\u6237\r\nupdate($userid,$username,$userpwd,$email,$oicq,$imgurl,$signature) \u66f4\u65b0\u7528\u6237\u6570\u636e\r\nget_from_condition($con) \u8fd4\u56de\u6ee1\u8db3\u67e5\u8be2\u6761\u4ef6\u7684\u8bb0\u5f55\u96c6\r\n<\/pre>\n<p>\u5efa\u8868session\u3002\u5f53\u7528\u6237\u767b\u5f55\u65f6\u5373\u5411\u6b64\u8868\u63d2\u5165\u65b0\u8bb0\u5f55\uff0c\u79bb\u5f00\u6216\u8d85\u65f6\u540e\u5220\u9664\u8bb0\u5f55\uff0c\u4fdd\u8bc1\u8868\u4e2d\u4fdd\u5b58\u7684\u662f\u5f53\u524d\u5728\u7ebf\u7684\u7528\u6237\u3002<\/p>\n<p>sessionid Int(10) \u5e8f\u5217\u53f7 auto_increment \u5173\u952e\u5b57<\/p>\n<p>userid Int(10) \u7528\u6237\u5e8f\u5217\u53f7\u53d6\u81eauser\u8868<\/p>\n<p>ipaddress Varchar(50) Ip\u5730\u5740<\/p>\n<p>lastactivity Int(10) \u6700\u540e\u6d3b\u52a8\u65f6\u95f4\uff0c\u7528\u5b83\u6765\u5224\u65ad\u7528\u6237\u662f\u5426\u8fd8\u5728\u7ebf<\/p>\n<p>\u5efa\u7c7b\u6587\u4ef6session.php \u5b9a\u4e49\u51fd\u6570<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\ninsert($userid,$ipaddress,$lastactivity) \u628a\u767b\u5f55\u6210\u529f\u7684\u7528\u6237\u63d2\u5165\u5230\u8868\u4e2d\r\nupdate($userid,$ipaddress,$lastactivity)\u66f4\u65b0\u5728\u7ebf\u7528\u6237\u6700\u540e\u6d3b\u52a8\u65f6\u95f4\r\ndel($con)\u5220\u9664\u6ee1\u8db3\u6761\u4ef6\u7684\u7528\u6237\uff0c\u7528\u5b83\u6765\u6e05\u9664\u79bb\u7ebf\u7528\u6237\r\nget_from_condition($con) \u8fd4\u56de\u6ee1\u8db3\u67e5\u8be2\u6761\u4ef6\u7684\u8bb0\u5f55\u96c6\r\n<\/pre>\n<p>\u516c\u7528\u6587\u4ef6global.php<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\ninclude &quot;class\/config.inc.php&quot;; \/\/\u628a\u914d\u7f6e\u6587\u4ef6\u5305\u542b\u8fdb\u6765\r\n$db = new db;\r\n$db-&gt; db_connect( ); \/\/\u8fde\u63a5\u6570\u636e\u5e93\r\n$user = new user; \/\/\u521d\u59cb\u5316\r\n$session = new session;\r\n\/\/\u542f\u52a8\u4f1a\u8bdd\r\nsession_start();\r\n\/\/\u5220\u9664session\u8868\u4e2d\u5df2\u7ecf\u8fc7\u671f\u7684\u7528\u6237\uff08\u5373\u975e\u5728\u7ebf\u7f51\u53cb\uff09\u56e0\u4e3a\u6b64\u6587\u4ef6\u603b\u662f\u88ab\u8c03\u7528\u4ece\u800c\u4fdd\u8bc1\u663e\u793a\u7684\u90fd\u662f\u5f53\u524d\u5728\u7ebf\u7684\u7528\u6237\r\n$curtime=time();\r\n$con=&quot;lastactivity&lt;$curtime&quot;;\r\n$session-&gt;del($con);\r\n\/\/\u6b63\u5728\u7ebf\u7684\u7f51\u53cb\u9700\u4e0d\u65ad\u66f4\u65b0session\u8868\u4e2d\u7684lastactivity\u65f6\u95f4,\u5e76\u91cd\u65b0\u8bbe\u7f6e\u7528\u6237\u7684COOKIES\r\nif ($HTTP_SESSION_VARS&#x5B;&quot;online&quot;]==&quot;on&quot;){ \/\/\u6b64\u5904\u4e5f\u53ef\u7528$_SESSION&#x5B;\u201conline\u201d]\r\n$userid=$HTTP_SESSION_VARS&#x5B;&quot;userid&quot;]; \/\/\u53d6\u5f53\u524d\u5728\u7ebf\u7528\u6237\u7684userid\r\n$ipaddress=substr($REMOTE_ADDR,0,50);\r\n$lastactivity=time()+3600; \/\/\u66f4\u65b0\u6700\u540e\u6d3b\u52a8\u65f6\u95f4\uff0c\u5982\u65f6\u4e00\u4e2a\u5c0f\u65f6\u4e4b\u5185\u672a\u8c03\u52a8\u9875\u9762\u5c31\u8ba4\u4e3a\u7528\u6237\u5df2\u79bb\u7ebf\uff0c\u4ece\u800c\u4f1a\u88ab\u5220\u9664\u3002\r\n$session-&gt;update($userid,$ipaddress,$lastactivity);\r\n}else{\r\n\/\/\u5982\u679c\u672a\u767b\u5f55\u90a3\u76f4\u63a5\u8f6c\u5165\u767b\u5f55\u9875\u9762\r\n$firstpage=&quot;logon.php&quot;;\r\nheader (&quot;Location: $firstpage&quot;);\r\nexit;\r\n}\r\n<\/pre>\n<p>\u767b\u5f55\u6587\u4ef6logon.php<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n&lt;? include &quot;global.php&quot;; \/\/\u628aglobal.php\u6587\u4ef6\u5305\u542b\u8fdb\u6765\r\nif ($hiddenField==&quot;0&quot;){ \/\/\u6d4b\u68c0\u8868\u5355\u6709\u672a\u88ab\u63d0\u4ea4\r\n$con=&quot;username=\u2019$username\u2019 and userpwd=\u2019$userpwd\u2019&quot;;\r\n$result=$user-&gt;get_from_condition($con);\r\nif ($user-&gt;counter==1){\r\nif (!session_is_registered(&quot;online&quot;)){\/\/\u68c0\u6d4b\u662f\u5426\u88ab\u767b\u8bb0\u8fc7\r\nsession_register(&quot;online&quot;); \/\/\u767b\u8bb0\u4e00\u4e2a\u65b0\u7684\u53d8\u91cf\u4e3a\u4f1a\u8bdd\u53d8\u91cf\r\n}\r\nif (!session_is_registered(&quot;ccauser&quot;)){\r\nsession_register(&quot;ccauser&quot;);\r\n}\r\nif (!session_is_registered(&quot;userid&quot;)){\r\nsession_register(&quot;userid&quot;);\r\n}\r\n$ccauser=$username; \/\/\u7ed9\u4f1a\u8bdd\u53d8\u91cf\u8d4b\u503c\r\n$online=&quot;on&quot;; \/\/\u8fd9\u4e2a\u53d8\u91cf\u5728global.php\u7528\u5230\u4ee5\u66f4\u65b0\u6700\u540e\u6d3b\u52a8\u65f6\u95f4lastactivity\r\n$userid=$user-&gt;userid;\r\n$ipaddress=substr($REMOTE_ADDR,0,50);\r\n$lastactivity=time()+3600;\r\n$con=&quot; userid=$userid&quot;;\r\n$session-&gt;get_from_condition($con);\r\n\/\/\u5224\u65ad\u4f1a\u8bdd\u662f\u5426\u5b58\u5728\uff0c\u6709\u53ef\u80fd\u4f60\u5728\u4e0d\u540c\u7684\u673a\u5668\u4e0a\u767b\u4e24\u6b21\u3002\r\nif ($session-&gt;counter==1){\r\n$session-&gt;update($userid,$ipaddress,$lastactivity); \/\/\u5982\u5b58\u5728\uff0c\u66f4\u65b0\r\n}else{\r\n$session-&gt;insert($userid,$ipaddress,$lastactivity); \/\/\u5982\u4e0d\u5b58\u5728\uff0c\u63d2\u5165\r\n}\r\n\/\/\u5728\u5ba2\u6237\u673a\u8bbe\u7f6eCOOKIES\r\nSetCookie(&quot;ccauser&quot;,$username,time()+3600);\r\nHeader(&quot;Location:test.php&quot;);\/\/\u7136\u540e\u5bfc\u5411\u6d4b\u8bd5\u9875\r\n}\r\n}\r\n?&gt;\r\n\r\n&lt;?\r\nif($HTTP_SESSION_VARS&#x5B;&quot;online&quot;]==&quot;&quot;) { \/\/\u5224\u65ad\u662f\u5426\u5df2\u767b\u5f55\r\n?&gt;\r\n<\/pre>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n\/\/\u4e0b\u9762\u662f\u767b\u5f55\u7684\u8868\u5355\r\n&lt;form name=&quot;form1&quot; method=&quot;post&quot; action=&quot;&quot;&gt;\r\n\u540d\u79f0: &lt;input type=&quot;text&quot; name=&quot;username&quot;&gt;\r\n\u5bc6\u7801: &lt;input type=&quot;text&quot; name=&quot;userpwd&quot;&gt;\r\n&lt;input type=&quot;hidden&quot; name=&quot;hiddenField&quot; value=&quot;0&quot;&gt;\r\n&lt;input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;\u63d0\u4ea4&quot;&gt;\r\n&lt;input type=&quot;reset&quot; name=&quot;Submit2&quot; value=&quot;\u91cd\u7f6e&quot;&gt;\r\n&lt;\/form&gt;\r\n&lt;?\r\n}else{\r\necho &quot;\u7f51\u53cb:&quot;.$HTTP_COOKIE_VARS&#x5B;&quot;ccauser&quot;].&quot;\u4f60\u5df2\u7ecf\u767b\u5f55\u4e86&quot;; \/\/\u5982\u679c\u5df2\u767b\u5f55\u5219\u663e\u793a\u63d0\u793a\r\n$str=&quot;&lt;br&gt;&lt;br&gt;&lt;a href=\u2019exit.php\u2019&gt;\u9000\u51fa\u793e\u533a&lt;\/a&gt;&quot;;\r\necho $str;\r\n}\r\n?&gt;\r\n<\/pre>\n<p>\u6d4b\u8bd5\u6587\u4ef6test.php<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n&lt;?\r\ninclude &quot;global.php&quot;; \/\/\u628aglobal.php\u6587\u4ef6\u5305\u542b\u8fdb\u6765\r\n$strWelcome=&quot;\u6b22\u8fce&lt;font color=red&gt;&quot;.$_SESSION&#x5B;'ccauser'].&quot;&lt;\/font&gt;&lt;br&gt;&quot;;\r\necho $strWelcome; \/\/\u663e\u793a\u6b22\u8fce\u4fe1\u606f\r\n$str=\u201d \u5f53\u524d\u5728\u7ebf\u7528\u6237\uff1a&lt;br&gt;===================&lt;br&gt;\u201d;\r\n$con=&quot; 1=1&quot;;\r\n\/\/\u63d0\u51fasession\u8868\u4e2d\u6240\u6709\u8bb0\u5f55\u5373\u662f\u5f53\u524d\u5728\u7ebf\u7528\u6237\uff0c\u672a\u628a\u6e38\u5ba2\u7b97\u5728\u5185\r\n$result=$session-&gt;get_from_condition($con);\r\nwhile($row=mysql_fetch_array($result)){\r\n$con1=&quot;userid=$row&#x5B;userid]&quot;;\r\n$user-&gt;get_from_condition($con1);\r\n$str.=$user-&gt;username.&quot; &quot;;\r\n}\r\necho $str;\r\n?&gt;\r\n&lt;br&gt;&lt;a href=\u2019exit.php\u2019&gt;\u9000\u51fa\u793e\u533a&lt;\/a&gt;\r\n<\/pre>\n<p>\u9000\u51fa\u6587\u4ef6exit.php<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n&lt;?\r\ninclude &quot;global.php&quot;; \/\/\u628aglobal.php\u6587\u4ef6\u5305\u542b\u8fdb\u6765\r\nif ($_SESSION&#x5B;&quot;online&quot;]==&quot;on&quot;){\r\n$con=&quot;userid=$userid&quot;;\r\n$session-&gt;del($con); \/\/\u5728session\u8868\u4e2d\u5220\u9664\u7528\u6237\u4fe1\u606f\u3002\r\nsession_destroy(); \/\/\u7ed3\u675f\u5f53\u524d\u7684\u4f1a\u8bdd\uff0c\u5e76\u6e05\u7a7a\u4f1a\u8bdd\u4e2d\u7684\u6240\u6709\u8d44\u6e90\r\necho &quot;\u5df2\u7ecf\u9000\u51fa\u793e\u533a\u2026\u2026&quot;;\r\n}\r\n?&gt;\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>PHP\u4f1a\u8bdd\u5373SESSION\u662f\u6307\u7528\u6237\u4ece\u8fdb\u5165\u7f51\u7ad9\u5230\u5173\u95ed\u7f51\u7ad9\u8fd9\u6bb5\u65f6\u95f4\u5185\u6d3b\u52a8\u7684\u4e00\u79cd\u673a\u5236\uff0c\u5b83\u63d0\u4f9b\u4e86\u6240\u6709\u7f51\u9875\u90fd\u5171\u540c\u4f7f\u7528\u7684\u516c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-752","post","type-post","status-publish","format-standard","hentry","category-code_related"],"_links":{"self":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/comments?post=752"}],"version-history":[{"count":1,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/752\/revisions"}],"predecessor-version":[{"id":5249,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/752\/revisions\/5249"}],"wp:attachment":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/media?parent=752"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/categories?post=752"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/tags?post=752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}