PHP的在线用户计数器
现在我将告诉你如何看到有多少用户在浏览您的网站。有许多方法来显示它,但我试图保持它简单,干净。
首先,我们必须创建两个表
CREATE TABLE `uonline` (
`session` varchar(100) NOT NULL,
`time` int(5) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
这将创建两个表。一个是会议和其他的是时间。他们将我们的信息存储。
现在是PHP的时间。让我们一起创造我们的主要变数
<?php session_start(); $ses = session_id(); $time = time(); $timech=$time-300; session_start(); // This wills start a session $ses = session_id(); //This will get our session's ID $time = time(); //This will get the time $timech=$time-300; - This will set our time to 5min Now we have to connect to the database: // Declare SQL login info $host = "localhost"; $username = ""; $password = ""; $dbname = ""; // Now we are going to connect to our database mysql_connect("$host", "$username", "$password")or die("<b>Can not connect:</b> ".mysql_error()); mysql_select_db("$db_name")or die("<b>Can not select the database:</b> ".mysql_error()); $host = "localhost"; // Your SQL's host name, usually it's "localhost" $username = ""; // Your MySQL username $password = ""; // Your MySQL password $dbname = ""; // Your database's name //Now we have to look for existing sessions and get the number of sessions. $result = mysql_query("SELECT * FROM uonline WHERE session='$ses'"); $num = mysql_num_rows($result); // This will select all info from session column where it's value is "$ses" $result = mysql_query("SELECT * FROM uonline WHERE session='$ses'"); // It will tell us how many active records are in session column $num = mysql_num_rows($result); if($num == "0"){ $result1 = mysql_query("INSERT INTO uonline (session, time)VALUES('$ses', '$time')"); }else{ $result2 = mysql_query("UPDATE uonline SET time='$time' WHERE session = '$ses'"); } if($num=="0"){ // If there's no records in session column then we must insert some records // Inserts session's ID and time to database $result1 = mysql_query("INSERT INTO uonline (session, time)VALUES('$ses', '$time')"); //But if there was more records than 0, let's update their records }else{ //Updates existing records $result2 = mysql_query("UPDATE uonline SET time='$time' WHERE session = '$ses'"); } // Ends If statement //Now let's find our info again from the columns: $result3 = mysql_query("SELECT * FROM uonline"); $result3 = mysql_query("SELECT * FROM uonline"); //This will get all info from uonline table //It's time for showing how many users are looking your site: $usersonline = mysql_num_rows($result3); echo "There are: <b>".$usersonline."</b> users online"; $usersonline = mysql_num_rows($result3); // It will get the number of records in columns // This will show how many users are on your site echo "There are: <b>".$usersonline."</b> users online"; //When the users have left, you must delete their records from database. mysql_query("DELETE FROM uonline WHERE time<$timech"); ?> // Deletes records from database when 5min has been thru. mysql_query("DELETE FROM uonline WHERE time<$timech"); And here's the full code: <?php session_start(); $ses = session_id(); $time = time(); $timech=$time-300; $host = "localhost"; $username = ""; $password = ""; $dbname = ""; mysql_connect("$host", "$username", "$password")or die("<b>Can not connect:</b> ".mysql_error()); mysql_select_db("$db_name")or die("<b>Can not select the database:</b> ".mysql_error()); $result = mysql_query("SELECT * FROM uonline WHERE session='$ses'"); $num = mysql_num_rows($result); if($num == "0"){ $result1 = mysql_query("INSERT INTO uonline (session, time)VALUES('$ses', '$time')"); }else{ $result2 = mysql_query("UPDATE uonline SET time='$time' WHERE session = '$ses'"); } $result3 = mysql_query("SELECT * FROM uonline"); $usersonline = mysql_num_rows($result3); echo "There are: <b>".$usersonline."</b> users online"; mysql_query("DELETE FROM uonline WHERE time<$timech");
本文地址:http://www.phprm.com/code/498e5380022e14c44f0d3f991b213630.html
转载随意,但请附上文章地址:-)