»ØÊ×Ò³ ¡ò ÉèΪÊ×Ò³  
¡ò Êղر¾Õ¾  
¡ò ÁªÏµÎÒÃÇ  
  Ê× Ò³  ×îÐÂÐÂÎÅ  Linux/BSD  ¿ªÔ´Èí¼þ  Êý¾Ý¿â¼¼Êõ  Unix¼¼Êõ  ³ÌÐòÉè¼Æ  ½â¾ö·½°¸  µÇ¼ÓÊÏä  Á÷Á¿Í³¼Æ  LinuxÂÛ̳  
  µ±Ç°Î»ÖãºÊ× Ò³ >> ³ÌÐòÉè¼Æ >> PHPÀà >> PHP ÖÐ session È«Ãæ½Ì³Ì
×î ÐÂ ÍÆ ¼ö
ÈÈ ÃÅ ÅÅ ÐÐ
PHP ÖÐ session È«..
ÔÚPHPÖÐʹÓÃDBM×÷Ϊ..
PHPÏÂGD°²×°È«¹¥ÂÔ
PHP³ÌÐòÔ±µÄ×ÔÎÒÐÞ..
PHP¸ßÊÖ֮·
ÔÚphpÖбÜÃâÖØ¸´Òý..
PHPÖÐsessionÈ«Ãæ½Ì..
¼Ó¹ÌPHP»·¾³
PHPÖÐsessionÈ«Ãæ½Ì..
ÅäÖÃPHPʹ֮ÄÜͬʱ..
×î ½ü ¸ü ÐÂ
¼Ó¹ÌPHP»·¾³
PHP ÖÐ session È«..
ÔÚphpÖбÜÃâÖØ¸´Òý..
ÔÚPHPÖÐʹÓÃDBM×÷Ϊ..
PHP³ÌÐòÔ±µÄ×ÔÎÒÐÞ..
PHP¸ßÊÖ֮·
php&java£¨¶þ£©
php&java£¨Ò»£©
PHP4ÓëPHP3ÖÐÒ»¸ö²»..
PHPдµÄICQºô»ú
¹ã ¸æ λ ÖÃ
Õ¾ ÄÚ ËÑ Ë÷
¹Ø¼ü´Ê

ËÑË÷·½Ê½

ËÑË÷·¶Î§

¾«È·Æ¥Åä
PHP ÖÐ session È«Ãæ½Ì³Ì

À´Ô´£ºLinux¼¼ÊõÖмáÕ¾ µÈ¼¶£ºÄ¬Èϵȼ¶
·¢²¼ÓÚ2005-05-28 18:06 ±»¶Á34515´Î ¡¾×ÖÌ壺´ó ÖРС¡¿

Ò»¡¢session¸ÅÊö
sessionÊÇʲô£¬¸Õ¿ªÊ¼ÎÒÒ²²»Ã÷°×£¬·Çרҵ´Êµä·­ÒëΪ»áÒ飬»áÒéÆÚ¡£Ö±µ½½Ó´¥aspºó²ÅÖªµÀsessionÊǸÉʲôµÄ£¬ÓÐʲôÓá£
×÷¸ö²»Ì«Ç¡µ±µÄ±ÈÓ÷°É£¨ËäÈ»²»Ç¡µ±£¬µ«ÒâÒåÈ´ÊÇÒ»ÑùµÄ£©£¬session¾ÍºÃÏóÄãºÍÄãÅ®ÓÑ(»òÆÞ×Ó)Ö®¼äµÄ¸ÐÇéËÆµÄ£¬sessionÊÇÄãºÍÍøÕ¾Ö®¼äµÄ¸ÐÇé¡£
sessionÔÚWEB¼¼ÊõÖÐÕ¼Óзdz£ÖØÒªµÄ·ÝÁ¿¡£ÓÉÓÚÍøÒ³ÊÇÒ»ÖÖÎÞ״̬µÄÁ¬½Ó³ÌÐò£¬Òò´ËÄãÎÞ·¨µÃÖªÓû§µÄä¯ÀÀ״̬¡£Òò´ËÎÒÃDZØÐë
ͨ¹ýsession¼Ç¼Óû§µÄÓйØÐÅÏ¢£¬ÒÔ¹©Óû§ÔÙ´ÎÒÔ´ËÉí·Ý¶Ôweb·þÎñÆ÷ÌṩҪÇóʱ×÷È·ÈÏ£¬ÀýÈ磬ÎÒÃÇÔÚÄ³Ð©ÍøÕ¾Öг£³£ÒªÇóÓû§µÇ¼£¬
µ«ÎÒÃÇÔõô֪µÀÓû§ÒѾ­µÇ¼ÁËÄØ£¬Èç¹ûûÓÐsessionµÄ»°£¬µÇ¼ÐÅÏ¢ÊÇÎÞ·¨±£ÁôµÄ£¬ÄÇÆñ²»ÒªÈÃÓû§ÔÚÃ¿Ò»Ò³ÍøÒ³Öж¼ÒªÌṩ
Óû§ÃûºÍÃÜÂë¡£
µ±È»£¬session²»¹âÓÃÓÚÓû§Éí·ÝÈÏÖ¤¹¦ÄÜ£¬»¹¿ÉÄÜÓÃÓÚÆäËü·½Ã棬ÒÔºóÎÒÃÇ»áÌáµ½µÄ¡£
sessionÓÃÖÐÎÄÀ´½âÊ;ÍÊǻỰÆÚ¡£Ò»¸ö»á»°ÆÚ¿ªÊ¼ÓÚÓû§ÊäÈëÒ»¸öÕ¾µãµÄÍøÖ·Ê±£¬½áÊøÓÚËûÀ뿪Õâ¸öÕ¾µãʱ¡£
session×îÔç³öÏÖÔÚ¶¯Ì¬½Å±¾ÓïÑÔActive Server PagesÖУ¬ËüµÄ¹¦ÄÜ֮ǿ´ó£¬ÊÇÒ»¾ä»°ÎÞ·¨ËµÇå³þµÄ¡£
µ±php»¹ÔÚ3.0°æ±¾Ê±£¬sessionÊÇËüÓÀÔ¶µÄÍ´¡£ËäÈ»php¾ßÓÐÖ´ÐÐËٶȿ죬ʹÓÃÁé»î£¬¹¦ÄÜÇ¿´óµÈÓŵ㣬µ«ÒòΪsessionµÄÎÊÌ⣬ʹºÜ¶àÕ¾µãµÄ¿ª·¢·ÅÆúÁËphp,ÖÁÉÙÎÒµÄÀϰåÊÇÕâÑùÈÏΪµÄ¡£µ±Ê±ÓкܶàphpÃâ·Ñº¯Êý¿âÌṩÔÚphp3ÉÏʵÏÖsessionµÄ·½°¸£¬µ«¶¼ÈÃÈ˸оõ²»Õý×Ú¡£
¾ÍºÃÏóÄ㻨ºÃ¼¸Ç§´óÑóÂòµÄÊÖ»úÈ´ÅäÖÃÒ»¸öºÜ´Ö²ÚµÄ²Ý×÷µÄ´ü×ÓÒ»Ñù£¬ËäÈ»¹¦ÄÜÊÇÒ»ÑùµÄ£¬µ«×ÜÈÃÈ˾õµÃ±ðŤ¡£php4µÄ³öÏÖÈÃphpÔÚsessionÎÊÌâÉÏ
ÓÐÁË·­ÉíµÄ»ú»á¡£ËäÈ»ËüµÄsessionʵÏÖ»¹²»ÊǺÜÀíÏë(Ö÷ÒªÊÇЧÂÊÎÊÌâ),µ«±Ï¾¹ÊÇËü×Ô¼ºÊµÏֵ쬶øÇÒ¿ÉÒÔʵ¼ÊʹÓÃÁË¡£
ÄÇÎÒÃÇÓÃsession¸ÉÊ²Ã´ÄØ£¬Äã˵Á˰ëÌ죬ÎÒÓò»Éϵϰ£¬ÄãÆñ²»ÓÐÂôÖ½ÕÅÖ®ÏÓ¡£OK,ÎÒÃÇÀ´¿´¿´sessionÓÐʲôÓÃ:×÷¹ýÍøÕ¾µÄÈ˶¼ÓÐÕâÑùµÄÌå»á£¬ÔÚÒ»Ò³Ò³ÃæÖеıäÁ¿(ÔÚ±¾Õ¶¼Ö¸·þÎñÆ÷¶Ë±äÁ¿£¬ÏÂͬ)ÊDz»ÄÜÔÚÏÂÒ»Ò³ÖÐÓõģ¬ËäÈ»ÓÐһЩ°ì·¨¿ÉÒÔʵÏÖ£¬±ÈÈçÓÃform£¬urlstringµÈµÈ
µ«ÓÐЩ¶ÔÓÚÓû§À´ËµÊDz»·½±ãµÄ£¬¼´Ê¹ÈÃform×Ô¶¯Ìá½»£¬µ«ÆäÖеÄÑÓʱÔÚÏÖ½ñµÄÍøÂç×´¿öÏÂ×ãÒÔÈÃÈËÖÏÏ¢,¶øÕâÁ½ÖÖ·½·¨¶¼Ã÷ÏÔ¼Ó´ó³ÌÐòÔ±µÄ¸ºµ£¡£Èç¹ûÄãÕýÔÚ¿ª·¢Ò»¸ö´óÐÍÏîÄ¿£¬ÄÇÕâЩ¶îÍâµÄ¸ºµ£ÊDz»ÄܺöÂԵġ£¶øÓÐÁËsession¾ÍºÃ°ìÁË£¬sessionÖÐ×¢²áµÄ±äÁ¿¿ÉÒÔ×÷Ϊȫ¾Ö±äÁ¿Ê¹Óá£Ê²Ã´,È«¾Ö±äÁ¿?
ºÃ¼«ÁË¡£ÕâÑùÒ»À´£¬ÄãÖªµÀÓÐʲôÓÃÁ˰É:×îÖ÷ÒªµÄÓÃÓÚÓû§Éí·ÝÈÏÖ¤,³ÌÐò״̬¼Ç¼£¬Ò³ÃæÖ®¼ä²ÎÊý´«µÝ¡£
˵ÁËËüÕâô°ëÌìµÄºÃ´¦£¬ÄãÒѾ­¶¯ÐÄÁ˰ɣ¬Ïȱð¸ßÐË£¬Ëü»¹ÓÐȱµãÄØ:ËüÊÇÓÃÎļþ±£´æµÄ±äÁ¿(µ±È»Ð§Âʲ»¸ßÁË,ËäÈ»¿ÉÒÔÓñðµÄ·½Ê½£¬µ«
ºÜÂé·³µÄ)£¬²»Äܱ£´æ¶ÔÏó¡£ÓëÖ®Ïà¶ÔµÄÊÇ£¬aspÖеÄsession¿ÉÒÔ±£´æ¶ÔÏó±äÁ¿£¬ÓÃÄÚ´æ±äÁ¿À´±£´æsession±äÁ¿¡£µ«ÎªÊ²Ã´ÎÒÃÇ»¹Ñ¡ÓÃphpÄØ£¬ºÇºÇ,
Ϊʲô£¬ÄãÄÜ´Ó±¾ÊéµÄ¿ªÊ¼¿´µ½ÕâÕ£¬Ïë±ØÄãÒ²Ó¦¸ÃÃ÷°×Á˰É,Ä㻹²»Ã÷°×£¬Faint,ÄãÔÙ´ÓÍ·¿´Æð°É£¬ÎÒ±£Ö¤Äã³ÉΪPHPר¼Ò^_^¡£
sessionÊÇÔõÑùʵÏÖµÄÄØ£¿ºÇºÇ£¬ÄãÒ»¶¨ÒÔΪºÜ¸ßÉî°É£¬ÎÒÀ´¸æËßÄãËüµÄÃØÃÜ¡£Èç¹û˵ֻ±£´æ±äÁ¿µÄ»°£¬ºÜ¶à¶ÁÕß¶¼Ã÷°×£¬ÕâÊǺܼòµ¥µÄ£¬
µ«Ç°ÃæÎÒÃÇ˵¹ý,httpЭÒéÊÇÒ»ÖÖÎÞ״̬µÄÁ¬½Ó£¬ÄãÔõô֪µÀÄǸö±äÁ¿ÊÇË­µÄ£¬Õâ¸ö±äÁ¿ÓÖÊÇË­µÄÄØ?ÔÚsessionʵÏÖÖÐÓÃcookieʵÏֵġ£cookie
´æÔÚÓÚ¿Í»§¶Ë£¬Ò²¾ÍÊÇÓû§µÄ»úÆ÷ÖУ¬ÀïÃæ±£´æ×ÅÓû§µÄsession ID£¬Ò²¾ÍÊÇsessionºÅÂë,µ±Óû§µÄä¯ÀÀÆ÷ÇëÇó·þÎñÆ÷ʱ°Ñsession IDÒ²Ò»ÆðË͵½
·þÎñÆ÷£¬ÕâÑù·þÎñÆ÷¾Í¿ÉÒÔʶ±ðÄãÊÇË­£¬Ò²¾Í¿ÉÒ԰ѱäÁ¿Ê¶±ð¿ªÁË¡£ÕâÑùÎÒÃǾͲ»ÄÑÀí½âÁË,ΪʲôÓÐʱsession»áʧЧÁË¡£²»Ðŵϰ£¬Äã¿ÉÒÔÊÔÊÔ:
ÔÚIEµÄ"¹¤¾ß"²Ëµ¥ÉÏÓÐ"InternetÑ¡Ïî"²Ëµ¥,´ò¿ªºóÔÙÑ¡"°²È«"->"×Ô¶¨Òå¼¶±ð",½«°²È«ÉèÖÃÖеÄ"ÔÊÐíʹÓÃÿ¸ö¶Ô»°cookies"ÉèΪ½ûÓã¬ÔÙ¿´¿´
sessionÄܲ»ÄÜÓá£ÕâÏÂÃ÷°×Á˰É!²»¹ýphp4ÔÚlinux/unixƽ̨ÉÏ¿ÉÒÔ×Ô¶¯¼ì²écookies״̬£¬µ±cookies ²»¿ÉÓÃʱ£¬×Ô¶¯»á°Ñsession ID
¸½´øÔÚurlÉϽøÐд«µÝ¡£ÕâÊÇËüÔÚsession·½Ãæ±Èasp¶àµÄΨһµÄÓŵãÁË¡£

¶þ¡¢php3,4ÖÐsessionµÄʵÏÖ

ÔÚphp3ÖÐÊÇûÓÐsessionÕâÖÖ¶«¶«µÄ£¬µ«ÎÒÃÇÓÖÐèÒª£¬Ôõô°ìÄØ£¿±ð¼±£¬ÓкܶàÈËÌæÄã×öÁËÕâЩ£¬ÕâÆäÖÐ×îÓÐÃûµÄÒªËãphplibÁË¡£Äã¿ÉÒÔÈ¥¹úÍâÏÂ
ÔØ£¬Ò²¿ÉÒÔÉϹúÄڴ󲿷ÖphpÕ¾µãÏÂÔØ¡£ÎÒÃÇÒª×öµÄµÚÒ»¼þÊÂÊÇÈÃphplibºÍphp3½áºÏÔÚÒ»ÆðʹËüÄܹ¤×÷¡£ÎªÁËÄÜʵÏÖÕâ·½ÃæµÄ¹¦ÄÜ£¬ÎÒÃÇÐèÒªÏȰ²×°phplib¡£
¸ú×ÅÎÒÀ´×ö£¬ºÜÈÝÒ×µÄ(ÒÔÏ·½·¨ÔÚwin2000+php3.0.16+apache1.3.12+phplib7.2c+mysql3.23.21 for win32 ÉÏͨ¹ý)
phplib×î»ù±¾µÄ¹¦ÄܰüÀ¨Óû§ÈÏÖ¤£¬Session¹ÜÀí£¬È¨ÏÞ¼°Êý¾Ý¿âµÄ³éÏ󻯡£
ÔõÑùʹÓÃphplibÀ´ÊµÏÖsession¹¦ÄÜÄØ?
Ò»¡¢Ê×ÏÈÄ㽫phplib½â¿ª£¬ÀïÃæÓÐÒ»¸öĿ¼½Ð"php",½«Õâ¸öĿ¼¿½±´µ½apacheµÄ°²×°Ä¿Â¼Ï¡£ÒÔÏÂÒÔ±ÊÕߵĻúÆ÷ΪÀý:
ÎÒµÄapache°²×°ÔÚd:apache Ŀ¼ÏÂ,ÎÒ½«ÉÏÃæµÄ"php"Ŀ¼¿½±´µ½d:apache,²¢½«phplibϵÄpagesĿ¼ÏµÄÎļþºÍĿ¼һÆð¿½±´µ½
d:apachehtdocsÏ£¬×¢Òâ²»´øÄ¿Â¼±¾Éí¡£
phplibµÄÀà¿âÐèÒª¸ù¾Ýϵͳ½øÐгõʼ»¯£¬Äã¿ÉÒÔÐÞ¸Älocal.incÎļþ£¬ÆäÖаüº¬×ÅһЩ»ù±¾²ÎÊý£¬Äã¿ÉÒÔ¸ù¾Ý×Ô¼º»úÆ÷µÄʵ¼ÊÇé¿öÀ´½øÐÐÐ޸ġ£
½«d:apachephpprepend.php3ÎļþÖеÄÒ»¶Î³ÌÐò¸ÄΪÈçÏÂÑù×Ó£º

if (!isset( $_PHPLIB) or !is_array( $_PHPLIB)) {
 $_PHPLIB["libdir"] = "d:/apache/php/"; //Õâ¶ù¸ÄΪÄã·ÅphplibÏÂphpĿ¼µÄ·¾¶
}

È»ºó½«d:apachephplocal.incÎļþ¸ÄÈçÏÂ:

class DB_Example extends DB_Sql {
var  $Host = "localhost";//ÄãµÄmysqlÊý¾Ý¿âËùÔÚÖ÷»úÃû
var  $Database = "test";//Êý¾Ý¿âÃû
var  $User = "root";//Êý¾Ý¿âÓû§Ãû
var  $Password = "";//Êý¾Ý¿âÓû§¿ÚÁî
}

×îºóÒ»²½Ö´Ðн⿪µÄphplibĿ¼ÖеÄstuffĿ¼ÏµÄcreate_database.mysqlÎļþ,Éú³É³õʼ±í¡£
ÎÒÃÇ˵Ã÷Ò»ÏÂphplibµÄ¹¤×÷Ô­Àí£¬Ã¿Ò»¸öʹÓÃphplibµÄÒ³ÃæÊ×ÏȱØÐë¿ÉÒÔÕÒµ½ÔËÐÐphplibËù±ØÐëÀà¿âÎļþ£¬ÎÒÃÇ¿ÉÒÔÔÚphp3.iniÖÐÉèÖÃauto_prepend
±äÁ¿À´Ö§³Ö£¬phplib·Ö·¢°üÖаüº¬Ò»¸öprepend.php3Îļþ£¬½«auto_prependÖ¸¶¨Îª"d:/apache/php/prepend.php3"(´øÒýºÅ)ºó£¬¸÷Ò³Ãæ¾Í»á×Ô¶¯°üº¬phplibÀà¿â£¬ÎÒÃÇ»¹¿ÉÒÔ
½«phplibÀà¿âËùÔÚĿ¼¼Ó½øinclude±äÁ¿ÖУ¬ÒÔ±ã¿ÉÒÔÕÒµ½ÕâЩÎļþ£¬µ±È»£¬×î±½µÄ°ì·¨¾ÍÊÇÖ¸¶¨phplibµÄ¾ø¶Ô·¾¶£¬Õâ¿É²»ÊǸöºÃÖ÷Òâ,¿ÉÒÆÖ²ÐÔÌ«²î£¡
µÚ¶þ²½£¬Ã¿Ò»¸öʹÓÃphplibµÄÒ³ÃæÖУ¬Äã±ØÐëÊ×Ïȵ÷ÓÃpage_openº¯Êý½øÐгõʼ»¯¡£Õâ»á¸æËßphplib£¬ÄãÏÖÔÚ»ò½«À´»áÓõ½×´Ì¬±£´æ¡£Ò»¸öµäÐ͵Ä
page_openÀý×ÓÈçÏ£º
<?php
page_open(array("sess" => "Example_Session"));
?>

Êý×é±äÁ¿(sess)ÓÃÀ´³õʼ»¯Ò»Ð©×´Ì¬±£´æ¶ÔÏó£¬×¢Ò⣺±ØÐëʹÓÃphplibÄÚÖÃÃû(sess)£¬ÕâЩÄÚÖÃÃûÊÇÄãÔÚlocal.iniÖÐËù¶¨ÒåµÄ£¬page_open
º¯Êý±ØÐëÔÚÒ³ÃæÄÚÈÝÊä³öµ½ä¯ÀÀÆ÷֮ǰ±»µ÷Óá£php3½Å±¾×îºóÓ¦ÒÔpage_close()½áÊø£¬Õ⽫»á½«ÓйØ×´Ì¬Êý¾Ýд»Øµ½Êý¾Ý¿âÖУ¬Èç¹ûÄãÍüÁ˵ϰ£¬
½á¹ûÄãÓ¦¸ÃÄÜÏëµ½,¹þ¹þ£¬ÄãµÄ±äÁ¿È«¶ªÁË,¿É²»Òª¹ÖÎÒû¸æËßÄã...

ÒòΪphplibʹÓÃÁËCookiesÀ´±£´æ×´Ì¬ÐÅÏ¢£¬ËùÒÔpage_open()º¯Êý±ØÐëÔÚÒ³ÃæÄÚÈÝÊä³öµ½ä¯ÀÀÆ÷֮ǰ±»µ÷Ó㬠ÕâÀïµÄÒ³ÃæÄÚÈÝ¿ÉÒÔÊÇÈκÎHTML
ÐÅÏ¢»òÕß¿ÕÐУ¬Èç¹ûÄã·¢ÏÖÁË´íÎó"Oops - SetCookie called after header has been sent"£¬Õâ±íÃ÷ÔÚpage_open()֮ǰÏòä¯ÀÀÆ÷Êä³öÁËЩʲô£¬
ÄãÒªÌØ±ðÁôÒâ¿ÕÐУ¬ÒòΪ·Ç³£ÄÑÕÒµ½£¬µäÐ͵ĴíÎóÊÇÔÚ<? ºÍ ?>±ê¼ÇÖ®¼äÊä³öÁË¿ÕÐУ¬ÄãÓ¦¼ì²éÔÚlocal.incºÍprepend.php3ÎļþÖÐÊÇ·ñ°üº¬ÁË¿ÕÐУ¬
ÕâÒ²ÊÇÒ»¸ö·Ç³£ÈÝÒ׳ö´íµÄµØ·½¡£ÎªÁ˼õÉÙ³ö´íµÄ¿ÉÄÜ,ÎÒÃÇ¿ÉÒÔÕâÑùÊéд³õʼ»¯³ÌÐò:
<?
page_open(array("sess" => "Example_Session"));
?>
<html>
.....
</html>
µÚÈý²½£¬¾ßÌåʹÓá£
µ±Ò»¸öÓû§·ÃÎÊÁ˸ÃÍøÕ¾ºó£¬Ëæ¼´Óû§µÄsession¾Í¿ªÊ¼ÁË£¬Èç¹ûÓû§µÄä¯ÀÀÆ÷Ö§³ÖcookieµÄ»°£¬½«»á½¨Á¢Ò»¸ösessionµÄid·ÅÈëcookie£¬
Õâ¸öΨһµÄIDÊÇÓÉPHP3Ëæ»úÉú³É£¬È»ºóÓÖÓÃËæ»úÖÖ×Ó×Ö´®½øÐÐmd5¼ÓÃܹýÁ˵ģ¬ÕâÀïµÄcookieÓ¦¸Ã½Ð×ösession cookie£¬ÒòΪÕâ¸öcookieÊDz»»á
дµ½Óû§Ó²ÅÌÀïÈ¥µÄ£¬µ±Ò»¸ösessionÆÚ½áÊøµÄʱºò£¬¸ÃcookieÒ²±»Íê½áÁË¡£Èç¹ûÓû§ä¯ÀÀÆ÷²»Ö§³ÖcookieµÄ»°£¬ÄÇô ¸ÃsessionµÄid½«»á·ÅÈëurlÁ´ÖУ¬
ÒòΪÊǼÓÃܹýµÄ£¬ËùÒÔÇÔÈ¡ÁËҲûÓá£session ID´æ·Å×ÅÓû§µÄÓйØÐÅÏ¢£¬ÈçÓû§ÒÑÈÏÖ¤¡¢ÈÏÖ¤µ½ÆÚʱ¼ä¡¢Óû§È¨ÏÞ£¬ºÍÆäËûһЩÄã¿ÉÄÜÐèÒªµÄÐÅÏ¢£¬
·½±ãÎÒÃÇÈ¡Óá£
SessionÆäʵ¾ÍÊÇÓû§Ò»´Î»á»°µÄ¹ý³Ì¡£Session²¢²»Êǽö½öÓÃÀ´¸ú×ÙÓû§µÄ×¢²á£¬Êµ¼ÊÉÏ£¬Ëü»¹¿ÉÒÔÓÐÆäËüµÄʹÓó¡ºÏ£¬Äã¿ÉÒÔÓÃËüÀ´´æ´¢ÈκÎÄãÏëÒª
´æÖüµÄÐÅÏ¢£¬ÕâЩÐÅÏ¢¿ÉÒÔÔÚÓû§Ëæºó·ÃÎʵÄÒ³ÃæÖÐÅÉÉÏÓ󡣬µ±È»Ç°ÌáÊÇÄÇÐ©Ò³ÃæÒªÊ¹ÓÃPHPLIB¡£·½·¨ºÜ¼òµ¥£¬×¢²áÒ»¸ö±äÁ¿ºó¼´¿ÉÔÚËæºóµÄÒ³ÃæÖÐʹÓÃËü£¬
Ö±ÖÁsession½áÊø¡£·½·¨£º

<?php  $sess->register( "variable_name"); ?>

×¢Ò⣬ÕâÀïµÄvariable_name²»ÊDZäÁ¿Öµ£¬¶øÊDZäÁ¿Ãû£¬¿ÉÒÔÏÈÖ¸¶¨±äÁ¿Ãû£¬ËæºóÔÙ¸³Öµ¡£ÄãÔÚij¸öÒ³ÃæÖпÉÒԸıä±äÁ¿µÄÖµ£¬ËæºóµÄÒ³Ãæ·ÃÎʸñäÁ¿Ê±
»áµÃµ½¸Ä±äºóµÄÖµ¡£±äÁ¿µÄÀàÐÍÊǶàÑùµÄ£¬¿ÉÒÔÊÇÒ»¸ö×Ö´®£¬Ò»¸öÊý×Ö£¬Ò»¸öÊý×é¡£¾ÙÀýÀ´ËµÃ÷£º
µÚÒ»Ò³:
<?php
page_open(array("sess" => "Example_Session"));
 $sess->register( "first"); //×¢Òâ±äÁ¿Ãûǰ²»ÐèÒª¼Ó $
if (iset( $firstname)) {
 $first =  $firstname;
}
.....
page_close();
?>
µÚ¶þÒ³:
<?php
page_open();//¿ªÊ¼session


echo  $first;//¿´¿´Ð§¹û

page_close();//±£´æ×´Ì¬ÐÅÏ¢
?>

×¢²áÍêÒ»¸ö±äÁ¿£¬µ±Ò³Ãæ×îºóµ÷ÓÃpage_close()º¯Êýºó£¬¸÷¸ösession±äÁ¿»á±»Ð´»Øµ½Êý¾Ý¿âÖС£Èç¹ûÄãÍü¼Çµ÷ÓÃpage_close()º¯ÊýµÄ»°£¬
±äÁ¿¾Í²»»á±»Ð´»ØÊý¾Ý¿â£¬½«³öÏÖ²»¿ÉÔ¤ÖªµÄºó¹û¡£µ±±äÁ¿±»Ê¹ÓÃÍê±Ï£¬Äã²»ÔÙÐèÒªÓõ½Ê±£¬¿ÉÒÔµ÷ÓÃÒÔϺ¯Êý½«±äÁ¿É¾³ý£º
<?php
page_open(array("sess" => "Example_Session"));
...
 $sess->unregister( "variable_name");
...
page_close();
?>

PHPLIB 7.0ÖУ¬Ê¹ÓÃÁËÒ»ÖÖ´æ´¢½á¹¹£¬ËüÔÊÐíÄã´æ´¢sessionÊý¾Ýµ½Êý¾Ý¿âÖС¢¹²ÏíÄÚ´æÖлòÕßLDAPÖС£PHPLIBʹÓÃÁËÊý¾Ý¿âÀ࣬ÕâʹµÃÄãÓÐ
Á˸ü¶àµÄÑ¡Ôñ,Äã¿ÉÒÔÑ¡ÓÃoracle8,mysql,postgresqlµÈµÈÊý¾Ý¿âÀ´±£´æ×´Ì¬ÐÅÏ¢¡£

¹ØÓÚphplibÖÐµÄÆäËü¹¦ÄÜÒÔ¼°ÓйØsessionµÄÆäËüº¯ÊýµÄʹÓã¬Äã¿ÉÒԲο´Ëü´øµÄÊÖ²á,»òÉÏËüµÄÍøÕ¾¿´ÔÚÏßÎĵµ¡£ËüµÄÀϼÒÔÚ
http://phplib.netuse.de/index.php3 ¡£
php4µÄsessionʵÏÖ´ó¶¼´ÓphplibѧÀ´µÄ£¬ËüÒ²¿¿cookies±£´æsession id,ÓÃÎļþϵͳ±£´æ±äÁ¿(ĬÈÏÇé¿öÏÂ)¡£Òò´Ë£¬ËüµÄsession
±äÁ¿²»Äܱ£´æ¶ÔÏó(ÊÂʵÉÏÄܱ£´æ¶ÔÏóÄÚÈÝ£¬µ«Ã»ÓÐÒâÒ壬ÒòΪËüÊDZ£´æÔÚ´ÅÅÌÉϵ쬲»ÊÇ»îµÄ¶ÔÏ󣬳äÆäÁ¿Ò²¾ÍÊǶÔÏóʬÌå¡£)²»¹ýÕâµãµÄÏÞÖÆ²»ÊÇÌ«
´ó£¬ÎÒÃÇÔڴ󲿷ÖÇé¿ö϶¼Ö»ÐèÒª±£´æ±äÁ¿¾ÍÐÐÁË¡£µ±È»ÄãÒ²¿ÉÒÔ½«session±£´æÔÚÊý¾Ý¿âÖÐ,ÏÂһС½ÚÖÐÎÒÃǻὲµ½ÔõÑù½«session±£´æÔÚÊý¾Ý¿âÖС£
ÔÚphp4ÖÐÓÉÓÚ±Èphp3¶àÁËsessionÖ§³Ö£¬ËùÒÔÔÚphp.iniÎļþÖÐÒ²¶àÁËsessionÅäÖÃÑ¡Ïî¡£ÏÂÃæÎÒÃÇÀ´¿´¿´¸÷ÏîµÄ×÷ÓÃÓëÒâÒå:

[Session]
session.save_handler = files ; handler used to store/retrieve data(ÓÃʲô±£´æsession±äÁ¿,ĬÈÏÇé¿öÏÂÓÃÎļþ)
session.save_path = c:/temp ; argument passed to save_handler(±£´æsession±äÁ¿µÄĿ¼£¬ÔÚlinux/unixÏÂΪ/tmp,ÔÚwinÏÂÉèΪÄãµÄĿ¼)
; in the case of files, this is the
; path where data files are stored
session.use_cookies = 1 ; whether to use cookies(ÊÇ·ñʹÓÃcookies,µ±È»£¬ÔÚwinϱðÎÞÑ¡Ôñ)
session.name = PHPSESSID
; name of the session(ĬÈÏsessionʹÓõÄcookiesÃû,½¨Òé²»Òª¸Ä¶¯)
; is used as cookie name
session.auto_start = 0 ; initialize session on request startup(ÊÇ·ñ×Ô¶¯ÆôÓÃsession,µ±Îª1ʱ£¬ÔÚÿҳÖоͿÉÒÔ²»±Øµ÷ÓÃsession_start()º¯ÊýÁË)
session.cookie_lifetime = 0 ; lifetime in seconds of cookie(É趨 cookie Ë͵½ä¯ÀÀÆ÷ºóµÄ±£´æÊ±¼ä£¬µ¥Î»ÎªÃ롣ȱʡֵΪ 0£¬±íʾֱµ½ä¯ÀÀÆ÷¹Ø±Õ¡£)
; or if 0, until browser is restarted
session.cookie_path = / ; the path the cookie is valid for(cookie)(cookiesÓÐЧ·¾¶)
session.cookie_domain = ; the domain the cookie is valid for(cookiesÓÐЧÓòÃû)
session.serialize_handler = php ; handler used to serialize data(¶¨ÒåÐòÁл¯Êý¾ÝµÄ±êʶ£¬±¾¹¦ÄÜÖ»ÓÐ WDDX Ä£¿é»ò PHP ÄÚ²¿Ê¹Óá£È±Ê¡ÖµÎª php)
; php is the standard serializer of PHP
session.gc_probability = 1 ; percentual probability that the (É趨ÿ´ÎÁÙʱÎļþ¿ªÊ¼´¦Àí (gc, garbage collection) ´¦Àí¸ÅÂÊ¡£È±Ê¡ÖµÎª 1¡£ )
; garbage collection process is started
; on every session initialization
session.gc_maxlifetime = 1440 ; after this number of seconds, stored(É趨±£´æsessionµÄÁÙʱÎļþ±»Çå³ýǰµÄ´æ»îÃëÊý)
; data will be seen as garbage and
; cleaned up by the gc process
session.referer_check = ; check HTTP Referer to invalidate (¾ö¶¨²ÎÕÕµ½¿Í»§¶ËµÄ Session ´úÂëÊÇ·ñҪɾ³ý¡£ÓÐʱÔÚ°²È«»òÆäËü¿¼ÂÇʱ£¬»áÉ趨²»É¾³ý¡£È±Ê¡ÖµÎª 0¡£)
; externally stored URLs containing ids
session.entropy_length = 0 ; how many bytes to read from the file(É趨 session ´Ó¸ßìØÖµ×ÊÔ´¶ÁÈ¡µÄλÊý¡£È±Ê¡ÖµÎª 0.)
session.entropy_file = ; specified here to create the session id(É趨 session ´úÂ뽨Á¢Ê±£¬Ê¹ÓÃÍⲿ¸ßìØÖµ×ÊÔ´»òÎļþÀ´½¨Á¢£¬ÀýÈç UNIX ϵͳÉ쵀 /dev/random »ò /dev/urandom¡£ )
; session.entropy_length = 16
; session.entropy_file = /dev/urandom
session.cache_limiter = nocache ; set to {nocache,private,public} to (É趨session »º³åÏÞÖÆ)
; determine HTTP caching aspects
session.cache_expire = 180 ; document expires after n minutes(ÎĵµÓÐЧÆÚ,µ¥Î»Îª·ÖÖÓ)

ÔÚwindowsƽ̨Ï£¬php4.01pl2ÒÔǰµÄ°æ±¾»á³öÏÖÉèÖÃsession.save_path ºó³ö´íµÄÇé¿ö£¬ÕâÊÇphpµÄÒ»¸öbug,ÔÚphp4.01pl2¼°ÒÔºóÒѾ­ÐÞÕýÁË¡£Èç¹ûÄãÓÃÒÔǰµÄ°æ±¾£¬
Äã¿ÉÒÔ½«session.save_pathÉèΪ"./",»òÉèΪ"/temp",²¢ÔÚÄã·ÅÖÃphp½Å±¾µÄµ±Ç°Å̸ùĿ¼Ï½¨Ò»¸öÃûΪtempµÄĿ¼¼´¿É(ÎÒµÄphp½Å±¾·ÅÔÚd:apachehtdocsÏ£¬ÔòÎÒÔÚd:Å̸ùĿ¼Ï½¨Ò»ÃûΪtempµÄĿ¼)¡£
ÔÚphp4ÖÐÓйØsessionµÄº¯ÊýÖ÷ÒªÓÐÒÔÏÂÕâЩ£º

session_start: ³õʼ»¯session,ÐèÒªÓÃsessionµÄÿһ¸öÒ³Ãæ×ʼ´¦µ÷Óá£
session_destroy: ½áÊø session,ÔÚÐèÒª½áÊøsession´¦µ÷¡£
session_name: ´æÈ¡Ä¿Ç° session Ãû³Æ¡£
session_module_name: ´æÈ¡Ä¿Ç° session Ä£¿é¡£
session_save_path: ´æÈ¡Ä¿Ç° session ·¾¶¡£
session_id: ´æÈ¡Ä¿Ç° session idºÅ¡£
session_register: ×¢²áеÄsession±äÁ¿¡£
session_unregister: ɾ³ýÒÑ×¢²ásession±äÁ¿¡£
session_is_registered: ¼ì²ésession±äÁ¿ÊÇ·ñ×¢²á¡£
session_decode: Session Êý¾Ý½âÂë¡£
session_encode: Session Êý¾Ý¼ÓÃÜ¡£

ͨ³£Çé¿öÏÂÎÒÃÇÖ»ÐèÒªµ÷ÓÃÈý¸öº¯Êý¼´¿É¡£
¼´sesssion_start()¡¢session_register()¡¢session_is_registered()¡£
ÔÚÐèÒªÓõ½sessionµÄÿһҳµÄ×ʼ´¦µ÷ÓÃsession_start()º¯Êý£¬
Ò»¸öµäÐ͵ÄʹÓÃsessionµÄÒ³ÃæÈçÏ£º
<?session_start()?>
<html>
....
<body>
<?
 $var="hello";
session_register("var");//×¢²á $var±äÁ¿£¬×¢ÒâûÓÐ $·ûºÅ


if(session_is_registered("var"))//¼ì²é±äÁ¿ÊÇ·ñ×¢²á
echo "haha,×¢²áÁË!";
else
echo "sorry,»¹Ã»ÓÐ×¢²á!";

?>
</body>
</html>

php4ÖÐsession´¦ÀíµÄ¶¨ÖÆ

ÎÒÃÇÐèÒªÀ©³ä6¸öº¯Êý£¬µ±È»ÕâЩº¯Êý²»ÐèÄãÈ¥µ÷Ó㬶ÔÎÒÃÇÀ´ËµÊÇ͸Ã÷µÄ¡£

Õ⼸¸öº¯ÊýÊÇ:
sess_open( $sess_path,  $session_name);

Õâ¸öº¯Êý±»session´¦Àí³ÌÐòµ÷ÓÃÀ´×÷³õʼ»¯¹¤×÷¡£ÐèÒª´«¸øËüµÄÁ½¸ö²ÎÊýÊÇ $sess_path,Ëü¶ÔÓ¦ÄãµÄphp.iniÎļþÖеÄsession.save_path
Ñ¡Ïî; $session_name,Ëü¶ÔÓ¦php.iniÖеÄsession.name Ñ¡Ïî¡£ËüÃǾßÌåÔõÑù¹¤×÷,Çë¿´ÏÂÃæµÄÀý×Ó¡£

sess_close();

Õâ¸öº¯ÊýÔÚÒ³Ãæ½áÊøÖ´Ðв¢ÇÒsession´¦Àí³ÌÐòÐèÒª¹Ø±Õʱ±»µ÷Óá£(×¢Ò⣬²»ÒªºÍsess_destory»ìÏýÁË,ËüÊÇÓÃÀ´½áÊøsessionµÄ)

sess_read( $key);

Õâ¸öº¯ÊýÔÚsession´¦Àí³ÌÐò¶Áȡָ¶¨session¼üÖµ( $key)ʱ¡£
Õâ¸öº¯Êý¼ìË÷²¢·µ»Ø±êʶΪ $keyµÄsessionÊý¾Ý.(×¢Ò⣺Äã²»Óõ£ÐÄÔõÑùÐòÁл¯ºÍ·´ÐòÁл¯Êý¾Ý,Èç¹ûÄã²»ÖªµÀÕâÊÇʲôÒâ˼£¬²»Òªµ£ÐÄËü)

ÒëÕß×¢£ºÐòÁл¯Êǽ«±äÁ¿»ò¶ÔÏóÔÚ³ÌÐò½áÊø»òÐèҪʱ±£´æÔÚÎļþÖУ¬ÔÚÏ´γÌÐòÔËÐлòÐèҪʱÔÙµ÷ÈëÄÚ´æµÄ¼¼Êõ,ÓбðÓÚÖ»±£´æÊý¾ÝµÄ·½·¨¡£

sess_write( $key,  $val);

Õâ¸öº¯Êý¾ÝÔÚsession´¦Àí³ÌÐòÐèÒª½«Êý¾Ý±£´æÊ±µ÷ÓÃ,ÕâÖÖÇé¿ö¾­³£ÔÚÄãµÄ³ÌÐò½áÊøÊ±·¢Éú¡£
Ëü¸ºÔð½«Êý¾Ý±£´æÔÚÏ´ÎÄÜÓÃsess_read( $key)º¯Êý¼ìË÷µÄµØ·½¡£

sess_destroy( $key);

Õâ¸öº¯ÊýÔÚÐèÒªÏû»Ùsessionʱ¡£Ëü¸ºÔðɾ³ýsession²¢ÇÒÇå³ý»·¾³¡£


sess_gc( $maxlifetime);
Õâ¸öº¯Êý¸ºÔðÇåÀíË鯬¡£ÔÚÕâÖÖÇé¿öÏ£¬Ëü¸ºÔðɾ³ý¹ýʱµÄsessionÊý¾Ý¡£session´¦Àí³ÌÐò»áż¶ûµ÷ÓÃËüÃÇ¡£

ÏÖÔÚÎÒÃÇÒѾ­Çå³þÁËÎÒÃÇÌṩµÄº¯Êý¡£

¶¨ÖƳÌÐò¿ÉÒÔÓÃmysqlÊý¾Ý¿â»òDBMÎļþ±£´æsessionÊý¾Ý¡£È¡¾öÓÚÄãµÄÐèÒª¡£
Èç¹ûÄã¾ö¶¨Ê¹ÓÃmysql×÷Ö§³Ö£¬ÄÇÐèÒª×÷ÒÔϹ¤×÷:

Ê×ÏÈÎÒÃÇÔÚmysqlÖд´½¨Ò»¸ösessionsÊý¾Ý¿â£¬²¢ÇÒ´´½¨Ò»¸ösessions±í¡£ÏÈÔËÐÐÄãµÄmysql¿Í»§¶Ë²¢ÇÒÖ´ÐÐÏÂÃæµÄÃüÁ
mysql> CREATE DATABASE sessions;

mysql> GRANT select, insert, update, delete ON sessions.* TO phpsession@localhost
-> IDENTIFIED BY phpsession;

mysql> CREATE TABLE sessions (
-> sesskey char(32) not null,
-> expiry int(11) unsigned not null,
-> value text not null,
-> PRIMARY KEY (sesskey)
-> );

ÏÂÒ»²½,ÐÞ¸Äsession_mysql.phpÎļþµÄ $SESS_DB* ±äÁ¿Ê¹ÆäÆ¥ÅäÄã»úÆ÷ÉϵÄÊý¾Ý¿âÉèÖá£

(ºÜ±§Ç¸£¬ÓÉÓÚ°æÈ¨Ô­Òò£¬ÎÒ²»ÄܰÑÒÔÏ´úÂëÖеÄÓ¢ÎÄÈ¥µô£¬Ö»ºÃ¼ÓЩעÊÍÁË:)
==================================================================================
<?
/* ------------------------------------------------------------------------
* session_mysql.php
* ------------------------------------------------------------------------
* PHP4 MySQL Session Handler
* Version 1.00
* by Ying Zhang (ying@zippydesign.com)
* Last Modified: May 21 2000
*
* ------------------------------------------------------------------------
* TERMS OF USAGE:
* ------------------------------------------------------------------------
* You are free to use this library in any way you want, no warranties are
* expressed or implied. This works for me, but I dont guarantee that it
* works for you, USE AT YOUR OWN RISK.
*
* While not required to do so, I would appreciate it if you would retain
* this header information. If you make any modifications or improvements,
* please send them via email to Ying Zhang <ying@zippydesign.com>.
*
* ------------------------------------------------------------------------
* DESCRIPTION:
* ------------------------------------------------------------------------
* This library tells the PHP4 session handler to write to a MySQL database
* instead of creating individual files for each session.
*
* Create a new database in MySQL called "sessions" like so:
*
* CREATE TABLE sessions (
* sesskey char(32) not null,
* expiry int(11) unsigned not null,
* value text not null,
* PRIMARY KEY (sesskey)
* );
*
* ------------------------------------------------------------------------
* INSTALLATION:
* ------------------------------------------------------------------------
* Make sure you have MySQL support compiled into PHP4. Then copy this
* script to a directory that is accessible by the rest of your PHP
* scripts.
*È·ÐÅÄãµÄphp4ÓÐmysqlÖ§³Ö£¬È»ºó°ÑÕâ¸ö½Å±¾¿½±´µ½ºÍÄãµÄphp½Å±¾ÓйصÄĿ¼¡£
* ------------------------------------------------------------------------
* USAGE:£¨Ê¹Ó÷½·¨£©
* ------------------------------------------------------------------------
* Include this file in your scripts before you call session_start(), you
* dont have to do anything special after that.
*°üº¬Õâ¸öÎļþµ½ÄãҪʹÓÃsessionµÄÎļþÖУ¬±ØÐëÔÚµ÷ÓÃsession_start()֮ǰ£¬·ñÔò,
*»áºÜ²ÒµÄ£¬²»Òª¹ÖÎÒû¸æËßÄã¡£ ÕâÑù¾Í²»ÐèÒªÔÙ×öʲô¹¤×÷ÁË,»¹ºÍÄãÒÔǰÓÃsessionµÄ·½·¨Ò»Ñù¡£
*/

 $SESS_DBHOST = "localhost"; /* database server hostname */
 $SESS_DBNAME = "sessions"; /* database name */
 $SESS_DBUSER = "phpsession"; /* database user */
 $SESS_DBPASS = "phpsession"; /* database password */

 $SESS_DBH = "";
 $SESS_LIFE = get_cfg_var("session.gc_maxlifetime");

function sess_open( $save_path,  $session_name) {
global  $SESS_DBHOST,  $SESS_DBNAME,  $SESS_DBUSER,  $SESS_DBPASS,  $SESS_DBH;

if (!  $SESS_DBH = mysql_pconnect( $SESS_DBHOST,  $SESS_DBUSER,  $SESS_DBPASS)) {
echo "<li>Cant connect to  $SESS_DBHOST as  $SESS_DBUSER";
echo "<li>MySQL Error: ", mysql_error();
die;
}

if (! mysql_select_db( $SESS_DBNAME,  $SESS_DBH)) {
echo "<li>Unable to select database  $SESS_DBNAME";
die;
}

return true;
}

function sess_close() {
return true;
}

function sess_read( $key) {
global  $SESS_DBH,  $SESS_LIFE;

 $qry = "SELECT value FROM sessions WHERE sesskey =  $key AND expiry > " . time();
 $qid = mysql_query( $qry,  $SESS_DBH);

if (list( $value) = mysql_fetch_row( $qid)) {
return  $value;
}

return false;
}

function sess_write( $key,  $val) {
global  $SESS_DBH,  $SESS_LIFE;

 $expiry = time() +  $SESS_LIFE;
 $value = addslashes( $val);

 $qry = "INSERT INTO sessions VALUES ( $key,  $expiry,  $value)";
 $qid = mysql_query( $qry,  $SESS_DBH);

if (!  $qid) {
 $qry = "UPDATE sessions SET expiry =  $expiry, value =  $value WHERE sesskey =  $key AND expiry > " . time();
 $qid = mysql_query( $qry,  $SESS_DBH);
}

return  $qid;
}

function sess_destroy( $key) {
global  $SESS_DBH;

 $qry = "DELETE FROM sessions WHERE sesskey =  $key\";
 $qid = mysql_query( $qry,  $SESS_DBH);

return  $qid;
}

function sess_gc( $maxlifetime) {
global  $SESS_DBH;

 $qry = "DELETE FROM sessions WHERE expiry < " . time();
 $qid = mysql_query( $qry,  $SESS_DBH);

return mysql_affected_rows( $SESS_DBH);
}

session_set_save_handler(
"sess_open",
"sess_close",
"sess_read",
"sess_write",
"sess_destroy",
"sess_gc");
?>
=================================================================
¶¨ÖÆÊ¹ÓÃdbmÎļþʱµÄ½Ó¿Ú
=================================================================
<?
/* ------------------------------------------------------------------------
* session_dbm.php
* ------------------------------------------------------------------------
* PHP4 DBM Session Handler
* Version 1.00
* by Ying Zhang (ying@zippydesign.com)
* Last Modified: May 21 2000
*
* ------------------------------------------------------------------------
* TERMS OF USAGE:
* ------------------------------------------------------------------------
* You are free to use this library in any way you want, no warranties are
* expressed or implied. This works for me, but I dont guarantee that it
* works for you, USE AT YOUR OWN RISK.
*
* While not required to do so, I would appreciate it if you would retain
* this header information. If you make any modifications or improvements,
* please send them via email to Ying Zhang <ying@zippydesign.com>.
*
* ------------------------------------------------------------------------
* DESCRIPTION:
* ------------------------------------------------------------------------
* This library tells the PHP4 session handler to write to a DBM file
* instead of creating individual files for each session.
*
* ------------------------------------------------------------------------
* INSTALLATION:
* ------------------------------------------------------------------------
* Make sure you have DBM support compiled into PHP4. Then copy this
* script to a directory that is accessible by the rest of your PHP
* scripts.
*È·ÐÅÄãµÄphp4ÓÐDBMÖ§³Ö¡£¿½±´Õâ¸öÎļþÔÚÄãµÄphp½Å±¾Ä¿Â¼¡£
* ------------------------------------------------------------------------
* USAGE:
* ------------------------------------------------------------------------
* Include this file in your scripts before you call session_start(), you
* dont have to do anything special after that.
* ÔÚµ÷ÓÃsession_start()֮ǰÇë°üº¬Õâ¸öÎļþ¡£Ö®ºó¾Í²»ÐèÒª×÷ʲô¹¤×÷ÁË¡£
*/

 $SESS_DBM = "";
 $SESS_LIFE = get_cfg_var("session.gc_maxlifetime");

function sess_open( $save_path,  $session_name) {
global  $SESS_DBM;

 $SESS_DBM = dbmopen(" $save_path/ $session_name", "c");
return ( $SESS_DBM);
}

function sess_close() {
global  $SESS_DBM;

dbmclose( $SESS_DBM);
return true;
}

function sess_read( $key) {
global  $SESS_DBM,  $SESS_LIFE;

 $var = "";
if ( $tmp = dbmfetch( $SESS_DBM,  $key)) {
 $expires_at = substr( $tmp, 0, strpos( $tmp, "|"));

if ( $expires_at > time()) {
 $var = substr( $tmp, strpos( $tmp, "|") + 1);
}
}

return  $var;
}

function sess_write( $key,  $val) {
global  $SESS_DBM,  $SESS_LIFE;

dbmreplace( $SESS_DBM,  $key, time() +  $SESS_LIFE . "|" .  $val);
return true;
}

function sess_destroy( $key) {
global  $SESS_DBM;

dbmdelete( $SESS_DBM,  $key);
return true;
}

function sess_gc( $maxlifetime) {
global  $SESS_DBM;

 $now = time();
 $key = dbmfirstkey( $SESS_DBM);
while ( $key) {
if ( $tmp = dbmfetch( $SESS_DBM,  $key)) {
 $expires_at = substr( $tmp, 0, strpos( $tmp, "|"));
if ( $now >  $expires_at) {
sess_destroy( $key);
}
}

 $key = dbmnextkey( $SESS_DBM,  $key);
}
}

session_set_save_handler(
"sess_open",
"sess_close",
"sess_read",
"sess_write",
"sess_destroy",
"sess_gc");
?>

=================================================================
¾ßÌåÔõôÓþͲ»Óöà˵ÁË£¬ÒòΪÕâЩº¯Êý¶¼ÊÇphpÒýÇæµ÷Óõģ¬ÓëÎÒÃÇÎ޹صġ£ÎÒÃÇÖ»ÐèÕÕÉÏÊöÅäÖúó¾ÍÐÐÁË£¬ÄãÓõϹÊÇÒÔǰµÄsessionº¯Êý¡£
¿´¿´ÏÂÃæµÄ´úÂë¾ÍÖªµÀÁË£º£©


session¶¨ÖƵIJâÊÔ´úÂë
==================================================================
<?
/* ------------------------------------------------------------------------
* test.php
* ------------------------------------------------------------------------
* PHP4 Customer Session Handler Test Script
* Version 1.00
* by Ying Zhang (ying@zippydesign.com)
* Last Modified: May 21 2000
*/

/* default to DBM handler */
if (! isset( $handler)) {
 $handler = "dbm";
}

/* default action is increment */
if (! isset( $action)) {
 $action = "increment";
}

/* load up the appropriate session handling script, depending on the handler */
if ( $handler == "dbm") {
include("session_dbm.php");

} elseif ( $handler == "mysql") {
include("session_mysql.php");

} else {
echo "<li>Unrecognized handler ( $handler)";
die;
}

/* start the session and register a simple counter */
session_start();
session_register("count");

/* figure out what we should do, depending on the action */
switch ( $action) {
case "increment" :
 $count = isset( $count) ?  $count + 1 : 0;
break;

case "destroy" :
session_destroy();
break;

case "gc" :
 $maxlife = get_cfg_var("session.gc_maxlifetime");
sess_gc( $maxlife);
break;

default:
echo "<li>Unknown action ( $action)";
break;
}
?>

<h1>Session Test Script</h1>
<ul>
<li>Handler: <b><?= $handler?></b>
<li>Action: <b><?= $action?></b>
<li>Count: <b><?= $count?></b>
</ul>

<hr size=1>
<form>
<table>
<tr>
<td>Handler:</td>
<td>
<select name="handler">
<option value="dbm">DBM</option>
<option value="mysql">MySQL</option>
</select>
</td>
</tr>
<tr>
<td>Action:</td>
<td>
<select name="action">
<option value="increment">Increment</option>
<option value="destroy">Session Destroy</option>
<option value="gc">Force Garbage Collection</option>
</select>
</td>
</tr>
<tr>
<td></td>
<td><br><input type="submit"></td>
</tr>
</table>
</form>
=======================================================================

Èý¡¢sessionÓ¦ÓþÙÀý

ÒÔÏÂÕâЩÀý×ÓÆ¬¶Ï½ö¹©²Î¿¼,Äã¿ÉÒÔ¶¨ÖÆÒ²¿ÉÒÔ²»¶¨ÖÆsession,ËæÄã±ã:)
(1)ÓÃÓÚÓû§ÈÏÖ¤
<?
session_start();
 $dbh = mysql_connect("localhost:3306","xxxx","xxxx");
mysql_select_db("znsoft");//Ñ¡ÔñÊý¾Ý¿â
 $query="select userid from reguser where userid= $userid and pass= $pass ";
// $userid  $pass ÊǵǼform´«µÝ¹ýÀ´µÄÓû§ÃûºÍÃÜÂë
 $res=mysql_query( $query, $dbh);
if( $row=mysql_fetch( $res))
{
 $reguser= $row[0];
?>
<script>
alert("ok,¸çÃÇ£¬»¶Ó­Äã!");
</script>
<?
}
else
{
 $reguser="";
?>
<script>
alert("sorry,Äã²»ÊÇ×¢²áÓû§!");
</script>
<?

..............//Äã×Ô¼º·ÅÉÏ´úÂë°É
}
session_register("reguser");
?>
ÁíÒ»Ò³ÃæÖмì²éÊÇ·ñÒѾ­µÇ¼
================
<?
session_start();

if(isset( $reguser)&& $reguser!="")//ÒѾ­µÇ¼
{
echo "»¶Ó­Äã,¸çÃÇ";
}
else//ûÓеǼѽ
echo "Çë×¢²á°É";
?>
Í˳ö¹¦ÄÜ
===============================
<?
session_destroy();
//»ò  $reguser="";
?>

(2)ÓÃÓÚ´«µÝ±äÁ¿

±¾³ÌÐòÓÃÓÚÔÚÒ³ÃæÖ®¼ä´«µÝ±äÁ¿
<?
 $name="m.y";
if(!sesion_is_registered("name"))//ûÓÐ×¢²ásession±äÁ¿ name
session_register("name");//×¢²á ±äÁ¿ name
?>
µÚ¶þÒ³
===================
<?
echo  $name;

//²»ÏëÓÃÁË£¬É¾µô°É
if(session_is_registered("name"))//ÊÇ·ñ×¢²á£¬Èç¹ûÒѾ­×¢²á
session_unregister("name");//µ±È»É¾µôÀ²
?>



ËÄ¡¢¸ü¶àµÄÀý×Ó£¬Äã×Ô¼ºÏë°É
.......




Ïà¹Ø×¨Ì⣺ÔÝÎÞÏà¹Ø×¨Ìâ

ÉÏһƪ£ºÔÚphpÖбÜÃâÖØ¸´ÒýÓõİ취
ÏÂһƪ£º¼Ó¹ÌPHP»·¾³

¹²ÓÐÆÀÂÛ 42 Ìõ ÍøÓÑÆÀ·Ö 1·Ö ²é¿´È«²¿

¡¾·¢±íÆÀÂÛ¡¿ ÆÀ·Ö£º1·Ö 2·Ö 3·Ö 4·Ö 5·Ö



Copyright © 2001-2007 °æÈ¨ËùÓÐ
Powered By RedHat/PHP/MySQL/ÐÄÓê¶¯Íø
¾©ICP±¸05005037ºÅ