[PHP] Member Count Script

Deshi

New Member
Messages
32
Reaction score
0
Points
0
Description:
When a user goes on a certain page or multiple pages, it adds a record to the MySQL database with their IP, date and time they went on the page and the month. Implimented into the admin panel is a search so you can search for users at certain times or with a certain Ip address.

Step 1:
Create a MySql database called count. Then insert the following into the mysql database to get you table:
PHP:
CREATE TABLE `guests` (
  `ip` varchar(30) NOT NULL default '',
  `date` varchar(30) NOT NULL default '',
  `time` varchar(30) NOT NULL default '',
  `month` varchar(30) NOT NULL default ''
)


Step 2:
Make a file called config.php and put the following into it editing all the variables that need changing.

config.php
PHP:
<?
// Edit varibles below
$host="localhost";  // mySQL database host
$username="";	   // mySQL database username
$password="";	   // mySQL database password
$database="count";  // mySQL database name
$table="guests";	// mySQL database table
// Do not edit below this line
$time=date("h:i A");
$date=date("j M Y");
$month=date("F");
$ip="$REMOTE_ADDR";
?>


Step 3:
Add the following script to the page that you want the members to be counted from (your hopepage or splash page)

index.php
PHP:
<?
include ('config.php');
mysql_connect($host,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = "INSERT INTO $table (ip, time, date, month) VALUES ('$ip','$time','$date','$month')";
mysql_query($query);
mysql_close();
?>


Step 4:
Create a folder called something along the lines of admin. Password protect this folder to stop intruders getting guest information. In the admin folder, add another config.php (Step 2).
Insert this page:

admin/index.php
PHP:
<option value="date">Date (e.g. 1 Jan 2005)
</select>
&nbsp;
<input type="text" name="search">
&nbsp;
<input type="submit" value="Search"></form>&nbsp<a href="index.php">VIEW ALL</a>
</fieldset>
<br><br>
<?php
include ('config.php');
mysql_connect($host,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM $table";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
echo "<br>We have had $num visitors.<br><br>";
echo "<table border='1' bordercolor='#CCCCCC' cellpadding='2' cellspacing='0' width='95%'>
<tr>
<td width='25%' align='center'>IP</td>
<td width='25%' align='center'>Date</td>
<td width='25%' align='center'>Time</td>
<td width='25%' align='center'>Month</td>
</tr>";
$i=0;
while ($i < $num) {
$ip=mysql_result($result,$i,"ip");
$date=mysql_result($result,$i,"date");
$time=mysql_result($result,$i,"time");
$month=mysql_result($result,$i,"month");
echo "<tr>
<td align='center'>$ip</td>
<td align='center'>$date</td>
<td align='center'>$time</td>
<td align='center'>$month</td>
</tr>";
$i++;
}
?>


Step 5:
This is the final stage where we add the search:

admin/search.php
PHP:
<fieldset>
<legend>Search</legend>
<form action="search.php" method="POST">
<select name="topic">
<option value="month">Month (e.g June)
<option value="ip">IP Address (e.g. xx.xx.xxx.xxx)
<option value="time">Time (e.g. 01:09 AM)
<option value="date">Date (e.g. 1 Jan 2005)
</select>
&nbsp;
<input type="text" name="search">
&nbsp;
<input type="submit" value="Search"></form>&nbsp<a href="index.php">VIEW ALL</a>
</fieldset>
<br><br>
<?php
include ('config.php');
$search=$_POST['search'];
$topic=$_POST['topic'];
mysql_connect($host,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM $table WHERE $topic LIKE '%$search%'";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
if ($num == 1)
$match="&nbsp;";
else
$match="es";
echo "<br>You searched $search in $topic. We have found $num match$match<br><br>";
echo "<table border='1' bordercolor='#CCCCCC' cellpadding='2' cellspacing='0' width='95%'>
<tr>
<td width='25%' align='center'>IP</td>
<td width='25%' align='center'>Date</td>
<td width='25%' align='center'>Time</td>
<td width='25%' align='center'>Month</td>
</tr>";
$i=0;
while ($i < $num) {
$ip=mysql_result($result,$i,"ip");
$date=mysql_result($result,$i,"date");
$time=mysql_result($result,$i,"time");
$month=mysql_result($result,$i,"month");
echo "<tr>
<td align='center'>$ip</td>
<td align='center'>$date</td>
<td align='center'>$time</td>
<td align='center'>$month</td>
</tr>";
$i++;
}
?>



And you are done! This tut took me a while to write :p Hope you enjoy it. Any comments or suggestion please feel free to post them here!

- Deshi
 

bigguy

Retired
Messages
10,984
Reaction score
10
Points
38
Will this work on any php forum ? or is it just for a specific one like phpbb ? Thought I`d ask
 

Deshi

New Member
Messages
32
Reaction score
0
Points
0
I think it can be used on anything. Wencites, phpbb, ipb etc tec.
 

bigguy

Retired
Messages
10,984
Reaction score
10
Points
38
Thats a real nice script, very cool. I like it. :) Did you write this ?
 

moose

New Member
Messages
1,056
Reaction score
0
Points
0
Mmm nice.. Thats awsome that you made the script.. I really wanna learn php.. but.. agh.. to lazy!!
 

Tyler

Retired Staff
Messages
8,564
Reaction score
0
Points
0
Sweet, thasts awesome. I will definatly use that :)
 

arkitek

New Member
Messages
242
Reaction score
0
Points
0
im pretty new to php... just wondering... how do i create a mysql table... i tried in cpanel... but that doesnt seem to do ****

thanks
 
Top