PDA

View Full Version : [PHP] Member Count Script



admans
07-18-2005, 17:59 PM
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:


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


<?
// 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


<?
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


<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:


<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!

xyris
07-19-2005, 07:06 AM
thx for the code

commes
08-31-2005, 16:44 PM
nice doe, although i dont think ill use it, since i got a forum already, which comes with it

unknowngiver
10-05-2005, 07:21 AM
Great work man
thanks for shairing

italks
10-05-2005, 12:16 PM
Its good for customer management.So thanks a lot for the detailed script.Will try it out before manking any further comments.