| ÔÚÂÛ̳ÀïÓÐÈËÎÊÎÒÈçºÎͳ¼ÆÔÚÏßÈËÊý£¿ÎÒÒ²²»ÖªµÀʲôÊÇ×îºÃµÄ·½·¨¡£ÏÂÃæÊDZ¾Õ¾µÄʵÏÖµÄÔÀí£¬ÎÒ°ÑËüд³öÀ´£¬¹©´ó¼Ò²Î¿¼¡£ÕâÖ»ÊÇÎҵķ½·¨£¬¿Ï¶¨²»ÊÇ×îºÃµÄ£¬»¹Ï£Íû¸ßÊÖÃÇÓèÒÔÖ¸Õý¡£ Æäʵ£¬ÒªÕæÕýͳ¼ÆÍ¬Ê±ÔÚ²¢·¢ÔÚÏßµÄÈËÊý£¬ÊÇÒ»¼þ²»Ì«ÏÖʵµÄÊ£¬ÕâÊÇÒòΪHTTPÐÒéÊÇÖÖÎÞ״̬µÄÐÒé¡£µ±¿Í»§¶ËÏò·þÎñÆ÷·¢³öÒ»¸öÇëÇóʱ£¬·þÎñÆ÷»áÂíÉϽ¨Á¢Ò»¸öеÄTCP/IPÁ¬½Ó£¬ÔڸûỰ½áÊøºó£¬ÈçÒ³ÃæÍêÈ«ÔØÈëºó£¬Õâ¸öÁ¬½Ó¾Í¹Ø±ÕÁË¡£Ò»°ãÀ´Ëµ£¬ÔÚÏßÈËÊýÖ¸µÄ¶¨ÊÇÔÚÒ»¶¨Ê±¼ä¶ÎÄÚͬʱ·ÃÎÊÕ¾µãµÄÈËÊý£¬¶ø²»ÊÇ»ùÓÚHTTPÐÒéµÄ²¢·¢Á¬½ÓÊý¡£ ÈÃÎÒÃÇÏÈÀ´¿´¿´Ò»¸ö·Ã¿ÍÊÇÈçºÎ·ÃÎÊÒ»¸öÍøÕ¾µÄ¡£ËûÔÚä¯ÀÀÆ÷µÄµØÖ·À¸ÀïÊäÈëÁËÄ¿±êÍøÕ¾µÄµØÖ·£¬È»ºóÔÚÒ»¶Îʱ¼äÄÚ³ÖÐøä¯ÀÀ¸ÃÍøÕ¾µÄÍøÒ³£¬×îºó£¬¹Ø±Õä¯ÀÀÆ÷»òÊäÈëеÄÍøÖ·¡ª¡ªä¯ÀÀ½áÊøÁË¡£¶ÔÓÚ·þÎñÆ÷¶ËÀ´Ëµ£¬·Ã¿Íµ½À´ÊÇ¿ÉÒÔÖªµÀµÄ£¬·Ã¿ÍÔÚä¯ÀÀÒ³ÃæÒ²ÊÇ¿ÉÒÔÖªµÀµÄ£¬¿ÉÊÇÔõô֪µÀʲôʱºò×ßµÄÄØ£¿ÓÉÓÚHTTPÐÒéÊÇÎÞ״̬µÄ£¬ËùÒÔÎÞ·¨ÖªµÀ¡£Í¨³£µÄ×ö·¨ÊǼÇÏ·ÿÍ×îºóÒ»´Îä¯ÀÀÕ¾µãÒ³ÃæµÄʱ¼ä¡£Èç¹û¸Ã·Ã¿ÍÔÚÒ»¸öÌØ¶¨µÄʱ¼äÄÚûÓÐÐµĶ¯×÷£¬ÄÇô¿ÉÒÔÈÏΪËû×ßÁË¡£ ¸ù¾ÝÉÏÃæµÄÕâ¸ö˼·£¬ÎÒ¾õµÃ×îºÃÓÃÊý¾Ý¿â£¬ÒòΪÊý¾Ý¿âÒª±ÈÆäËû·½·¨ÈçÎı¾ÎļþµÄЧÂÊÒª¸ß¡£ÏÂÃæµÄÀý×ÓÊÇʹÓÃMySQLµÄ£¬ºÜÈÝÒ×ʹÓÃÆäËûÀàÐ͵ÄÊý¾Ý¿âϵͳ¡£È»ºó£¬ÔÚËùÓеÄÒ³ÃæÖе÷ÓÃÕâ¸öPHPÎļþ£¬Ò»·½Ãæ¸üÐÂÊý¾Ý£¬ÁíÒ»·½Ãæ¿ÉÒÔÏÔʾÔÚÏßµÄÈËÊý¡£µ«ÊÇ£¬ÓÐÒ»¸öÎÊÌâ--µ½µ×Ôڶ೤ʱ¼äÄÚ·ÃÎʵÄÈËËãÊDz¢·¢µÄÄØ£¿Ò»°ãÀ´Ëµ£¬Êǰë¸öСʱ£¬Ò²¾ÍÊÇ1800Ã룬¾ßÌåµÄÒª¸ù¾ÝÍøÕ¾µÄÇé¿öÀ´È·¶¨¡£Õâ¸öʱ¼äÔ½³¤£¬Í³¼Æ³öµÄ²¢·¢ÔÚÏßµÄÈËÊý¾ÍÔ½¶à¡£±¾Õ¾µÄÊÇ15·ÖÖÓ£¬900Ãë¡£Ó÷ÃÎÊÕßµÄIPµØÖ·±íʾһ¸ö·ÃÎÊÕßÊǸö²»´íµÄ·½·¨¡£ÔÚ²¦ºÅÉÏÍøµÄÇé¿öÏ£¬±»·ÖÅäÁËÏàͬIPµØÖ·µÄÁ½¸öÓû§ÔÚ¶Ìʱ¼äÄÚä¯ÀÀͬһ¸öÍøÕ¾µÄ¸ÅÂÊÊǺÜСµÄ¡£ Ê×ÏÈ£¬ÓÃMySQLµÄ¹¤¾ß½¨Ò»¸ö±í£º CREATE TABLE ccol( id integer not null auto_increment, #¼Ç¼µÄID ip char(15) not null, #·ÃÎÊÕßµÄIPµØÖ· dtstamp datetime not null, #×îºó·ÃÎÊʱ¼ä uri char(255), #·ÃÎÊÕßÇëÇóµÄURI primary key (id) ); È»ºó£¬Ð´Ò»¶ÎPHP´úÂ룺 <? /* Îļþ:ccol.php - ConCurrent OnLine statistics Ä¿µÄ:ͳ¼ÆÍ¬Ê±ÔÚÏßä¯ÀÀµÄÈËÊý ×÷Õß:Hunte, hunte@phpuser.com ÐÞ¸Ä:2000-4-25 */ ¡çduration=1800; require "db.php"; //°üº¬DBSQL£¬ÏêÇé¿ÉÒԲο¼ÎÒµÄÁíһƪÎÄÕ ¡çccol=new dbSQL; ¡çccol->connect(); ¡çccol->query("DELETE FROM ccol WHERE (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(dtstamp))>¡çduration"); //ɾ³ý³¬¹ý°ëСʱµÄ¼Ç¼ ¡çccol->query("SELECT * FROM ccol WHERE ip='¡çREMOTE_ADDR'"); //Åжϵ±Ç°µÄIPÊÇ·ñÔڸñíÖдæÔÚ if (¡çccol->nf())//ÓУ¿ { ¡çccol->next_record();//ÏÂÒÆÕÒµ½µÄ¼Ç¼Êý×éµÄÖ¸Õë ¡çid=¡çccol->f('id'); ¡çccol->query("UPDATE ccol SET dtstamp=now(), uri='¡çREQUEST_URI' WHERE id=¡çid"); //ÉèÖÃ×îºó·ÃÎÊʱ¼äºÍ·ÃÎÊÒ³Ãæ } else//ûÓÐ { ¡çccol->query("INSERT INTO ccol VALUES (0, '¡çREMOTE_ADDR', now(), '¡çREQUEST_URI')"); } ¡çccol->query("SELECT COUNT(*) AS ccol FROM ccol WHERE (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(dtstamp))<=¡çduration"); //ÕÒ³öÔÚ°ë¸öСʱÄڵļǼ£¬ºóÃæµÄWHERE×Ó¾ä¿ÉÓпÉÎÞ--³¬³öʱ¼äµÄÒѾ±»É¾³ýÁË ¡çccol->next_record() echo "ÔÚÏßÈËÊý£º", ¡çccol->f('ccol'); ¡çccol->free_result(); ?> ÔõôÓÃÄØ£¿ÔÚÕ¾µãµÄÿ¸öÒ³ÃæµÄÉÏÃæµ÷ÓÃÕâ¸ö³ÌÐò£¬¾ÙÀýÀ´Ëµ£º --index.php ... <!--ÏÔʾÔÚÏßÈËÊý-> <?require ../stats/ccol.php?> ... µ±È»£¬Õâ¶Î´úÂ뻹ÓиĽøµÄÓàµØ¡£ÀýÈ磬ÔÚÿ´Îµ÷ÓÃÊǶ¼ÒªÉ¾³ý°ëСʱǰµÄ¼Ç¼£¬ÕâÊÇûÓбØÒª¶øÇһήµÍЧÂÊ¡£¿ÉÒÔÒ»¸öʲô°ì·¨¹ý¸ü³¤µÄʱ¼äÔÙ×ö£¬±ÈÈç6Сʱ¡£´ó¼Ò×Ô¸ö¶ùÏëÏë°É£¬ÎҾͲ»ËµÁË¡£ ÕâÖÖ·½·¨Ö»ÒªÉÔ×öÐ޸ģ¬¾Í¿ÉÒÔÅÉÉϱðµÄÓô¦£¬ÈçSESSIONµÄ¹ÜÀí¡¢ÍøÕ¾µÄ·ÃÎÊͳ¼Æ·ÖÎöµÈ¡£ --»¶Ó¸ßÊÖÖ¸Õý£¡
|