WebAgent + Ban : Въпроси...

DevNull

Registered
В тази тема ще се обсъжда всичко свързано със webagent + ban на @jooorooo

http://web-tourist.net/login/login/view.php?st=1216

Може ли този урок да се направи така че да отчита само уникалните посещения?
 
DevNull каза:
http://web-tourist.net/login/login/view.php?st=1216

Може ли този урок да се направи така че да отчита само уникалните посещения?

Изпреварил си ме :)
И аз щях да питам същия въпрос.
 
Мисля, че няма смисъл само уникалните. може да се напише една заявка да показва само уникалните. ще напиша нещо при първа възможност
 
да и това е идея . така ще е по добре да показва и всички и уникалните .
 
До сега размишлявах, но не знам как става показването на уникалните. знам как е с SELECT DISTINCT, но в случая не ни върши работа. мога примерно да изкарам само броя на уникалните, но не знам как да покажа целия резултат само уникалните. :(
 
а можеш ли да го направиш така че да брои само посещенията не презарежданията ?
 
на самия agent.php се прави една заявка която проверява дали дадено IP е налично и ако е налично да не го записва. А може да се направи копие на базата на agent и там да записва уникални и да се направи и agent1.php които записва уникалните.
 
можеш ли да ми кажеш как да го направя щото нямам кой знае колко големи познания :)
 
Ето няколко файла които да си добавиш.

agentuni.php - записва уникалните посещения. него също го инклудваш както другите. ban.php трябва да е 1-ви инклуднат.

Код:
<?php 

$ip = $_SERVER['REMOTE_ADDR']; 
$data = date("j/n/Y G:i:s"); 
$adres = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']; 
$useragent = ($_SERVER['HTTP_USER_AGENT']); 
$brouser = ($_SERVER['HTTP_USER_AGENT']); 
$var = file("http://api.hostip.info/get_html.php?ip=".$_SERVER["REMOTE_ADDR"]); 
$img = "http://api.hostip.info/flag.php?ip=$ip"; 

$info1 = $var[0]; 
$info2 = $var[1]; 

include "config.php"; 

mysql_connect($server, $dbusername, $dbpassword)or die("Сайтът не може да се свърже към базата данни"); 
@mysql_select_db($db_name) or die("Грешна база данни"); 
$result = mysql_query("SELECT * FROM `agentuni`); 
$i = 1; 
while($row = mysql_fetch_array($result)) 
{ 
$ipr=$row[ip]; 
if(!$ip==$ipr)
{
$connect = mysql_connect($server, $dbusername, $dbpassword)or die("Сайтът не може да се свърже към базата данни"); 
@mysql_select_db($db_name) or die("Грешна база данни"); 
$query = "INSERT INTO `agentuni` ( `id` , `ip` , `data`, `adres`, `brouser`, `info1`, `info2`, `img`) 
VALUES ( 
'NULL', '$ip', '$data', '$adres', '$brouser', '$info1', '$info2', '$img' 
);"; 
mysql_query($query); 
}
$i++; 
} 

?>

базата за новия агент:


Код:
CREATE TABLE `agentuni` ( 
`id` int(11) NOT NULL auto_increment, 
`ip` varchar(30) NOT NULL, 
`data` varchar(30) NOT NULL, 
`adres` text NOT NULL, 
`brouser` varchar(255) NOT NULL, 
`info1` varchar(200) NOT NULL, 
`info2` varchar(200) NOT NULL, 
`img` varchar(250) NOT NULL, 
PRIMARY KEY (`id`) 
);

и файла viewipuni.php

Код:
<?php 

session_start(); 

if(!$_SESSION['username']){ 

echo "Please <a href=admin.php>login.</a>"; 

exit; 

} 



include ("config.php"); 


$StartRow = 0; 


if(empty($_GET['PageNo'])){ 
if($StartRow == 0){ 
$PageNo = $StartRow + 1; 
} 
}else{ 
$PageNo = $_GET['PageNo']; 
$StartRow = ($PageNo - 1) * $PageSize; 
} 


if($PageNo % $PageSize == 0){ 
$CounterStart = $PageNo - ($PageSize - 1); 
}else{ 
$CounterStart = $PageNo - ($PageNo % $PageSize) + 1; 
} 


$CounterEnd = $CounterStart + ($PageSize - 1); 
?> 

<html> 
<head> 
<title>ИП адреси</title> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> 
<style type="text/css"> 

BODY { 
FONT-SIZE: 8pt; COLOR: #526ba5; FONT-FAMILY: Arial 
} 
H3 { 
COLOR: #526ba5 
} 
H4 { 
COLOR: #526ba5 
} 
.Issue { 
BACKGROUND-COLOR: #c6c6ce 
} 
.NormalField { 
FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Verdana;BACKGROUND-COLOR: #ffffff 
} 
.NormalFieldTwo { 
FONT-SIZE: 7pt; 

FONT-FAMILY: Verdana; 
background : #E4E4E4; 
font-weight : bold 
} 
.NormalFieldThree { 
FONT-SIZE: 10pt; 
COLOR: Yellow; 
FONT-FAMILY: Verdana; 
background : #0C79B4; 
font-weight : bold; 
text-align : center; 
} 

.NormalFieldFour { 
FONT-SIZE: 10pt; 
COLOR: Yellow; 
FONT-FAMILY: Verdana; 
background : Black; 
font-weight : bold; 
text-align : center; 
} 
.NormalFieldFive { 
FONT-WEIGHT: bold; 
FONT-SIZE: 10pt; 
COLOR: Navy; 
FONT-FAMILY: Verdana; 
BACKGROUND-COLOR: #ffffff 
} 
.NormalFieldSix { 
FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #526ba5; FONT-FAMILY: Arial 
} 

.TableText { 
FONT-SIZE: 8pt; COLOR: #000000; FONT-FAMILY: Arial 
} 
.TableBorder{ 
border-color : Black; 
} 
.NormalTable { 
BACKGROUND-COLOR: #ffffff 
} 
.NormalTableTwo { 
BACKGROUND-COLOR: #eeeeee 
} 
.UsePageBG { 
BACKGROUND-COLOR: #cccccc 
} 
.UseTableBG { 
BACKGROUND-COLOR: #526ba5 
} 
.UseDialogBG { 
BACKGROUND-IMAGE: url(../Graphics/Images/DialogBackGround.gif) 
} 
.ReadOnlyField { 
FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #526000; FONT-FAMILY: Arial 
} 
.InternalHeader { 
FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #ffffff; FONT-FAMILY: Arial; BACKGROUND-COLOR: #526ba5; 
} 
.AttachedFiles { 
BACKGROUND-COLOR: #99ccff; 
color : Black 
} 
.SpecialAnchor { 
FONT-FAMILY: Arial; TEXT-DECORATION: none 
} 
UNKNOWN { 
FONT-WEIGHT: lighter; FONT-SIZE: 8pt; TEXT-TRANSFORM: capitalize; COLOR: navy; FONT-STYLE: normal; FONT-FAMILY: 'Arial', Times New Roman, Verdana; FONT-VARIANT: normal; TEXT-DECORATION: underline 
} 
.SearchResults { 
FONT-WEIGHT: normal; FONT-SIZE: 8pt; COLOR: #000000; FONT-STYLE: normal; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none 
} 
.MandatoryFields { 
FONT-WEIGHT: normal; FONT-SIZE: 10pt; COLOR: #ff0000; FONT-STYLE: normal; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none 
} 
.tab-above-heading { 
FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: #000000; FONT-STYLE: normal; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none 
} 
.textareaLabel { 
FONT-WEIGHT: bolder; FONT-SIZE: 10pt; COLOR: #526ba5; FONT-FAMILY: Arial 
} 
.linkStyle { 
TEXT-DECORATION: none 
} 
.PageTitle { 
FONT-WEIGHT: bold; FONT-SIZE: 16pt; COLOR: #526ba5; FONT-FAMILY: Tahoma 
} 
.smallfont { 
FONT-SIZE: 7.5pt; COLOR: #000000; FONT-FAMILY: Arial 
} 
A { 
COLOR: Red; 
TEXT-DECORATION: none 
} 

#nav { 
background-color: #D5D5D5; 
border: 1px solid #B8B8B8; 
padding-top: 8px; 
height: 21px; 
padding-left: 3px; 
} 
#nav a { 
border: 1px solid #B7B7B7; 
padding: 4px; 
background-color: #F3F3F3; 
color: #0077B4; 
font-weight: bold; 
text-decoration: none; 
font-family: Verdana, Sans-Serif; 
font-size: 12px; 
} 
#nav a:hover { 
color: #00A8FF; 
background-color: #ffffff; 
border: 1px solid #727272; 
border-bottom: 1px solid #ffffff; 
} 
</style> 
</head> 
<body class="UsePageBg"> 
<div id="nav"> 
<a href="viewip.php">Посещения</a> <a href="viewban.php">Баннати IP</a> 
</div><br><br> 
<?php 
mysql_connect($server, $dbusername, $dbpassword)or die("Сайтът не може да се свърже към базата данни"); 
@mysql_select_db($db_name) or die("Грешна база данни"); 
$TRecord = mysql_query("SELECT * FROM `agentuni`"); 
$result = mysql_query("SELECT * FROM `agentuni` ORDER BY `id` DESC LIMIT $StartRow,$PageSize"); 


$RecordCount = mysql_num_rows($TRecord); 


$MaxPage = $RecordCount % $PageSize; 
if($RecordCount % $PageSize == 0){ 
$MaxPage = $RecordCount / $PageSize; 
}else{ 
$MaxPage = ceil($RecordCount / $PageSize); 
} 
?> 

<table width="100%" border="0" class="InternalHeader"> 
<tr> 
<td width="24%"><a href=logout.php>Изход</a></td> 
<td width="76%"> 
<div align="right"> 
<?php print "$RecordCount record(s) founds - You are at page $PageNo of $MaxPage" ?></div> 
</td> 
</tr> 
</table> 
<br> 
<table width="100%" border="0" class="NormalTableTwo"> 
<tr> 
<td class="InternalHeader" width="2%">Номер</td> 
<td class="InternalHeader" width="8%">Дата</td> 
<td class="InternalHeader" width="10%">IP</td> 
<td class="InternalHeader" width="25%">Адрес</td> 
<td class="InternalHeader" width="35%">Браузер</td> 
<td class="InternalHeader" width="20%">Инфо</td> 
</tr> 
<?php 
$i = 1; 
while($row = mysql_fetch_array($result)) 
{ 
$id=$row[id]; 
$data=$row[data]; 
$ip=$row[ip]; 
$adres=$row[adres]; 
$brouser=$row[brouser]; 
$info1=$row[info1]; 
$info2=$row[info2]; 
$img=$row[img]; 

$bil = $i + ($PageNo-1)*$PageSize; 
?> 
<tr> 
<td class="NormalFieldTwo" width="2%"><?php echo $bil ?></td> 
<td class="NormalFieldTwo" width="8%"><?php echo $data ?></td> 
<td class="NormalFieldTwo" width="10%"><a href=addban.php?ip=<?php echo $ip ?>><?php echo $ip ?></a></td> 
<td class="NormalFieldTwo" width="25%"><?php echo $adres ?></td> 
<td class="NormalFieldTwo" width="35%"><?php echo $brouser ?></td> 
<td class="NormalFieldTwo" width="20%"><?php echo "<img width=20 height=10 border=1 src=$img> $info2 <br> $info1"; ?></td> 
</tr> 
<?php 
$i++; 
}?> 
</table><br> 
<table width="100%" border="0" class="InternalHeader"> 
<tr> 
<td> 

<div align="center"> 
<?php 
//Print First & Previous Link is necessary 
if($CounterStart != 1){ 
$PrevStart = $CounterStart - 1; 
print "<a href=?PageNo=1>Първи </a>: "; 
print "<a href=?PageNo=$PrevStart>Предишни $PageSize </a>"; 
} 
print " [ "; 
$c = 0; 

//Print Page No 
for($c=$CounterStart;$c<=$CounterEnd;$c++){ 
if($c < $MaxPage){ 
if($c == $PageNo){ 
if($c % $PageSize == 0){ 
print "$c "; 
}else{ 
print "$c ,"; 
} 
}elseif($c % $PageSize == 0){ 
echo "<a href=?PageNo=$c>$c</a> "; 
}else{ 
echo "<a href=?PageNo=$c>$c</a> ,"; 
}//END IF 
}else{ 
if($PageNo == $MaxPage){ 
print "$c "; 
break; 
}else{ 
echo "<a href=?PageNo=$c>$c</a> "; 
break; 
}//END IF 
}//END IF 
}//NEXT 

echo "] "; 

if($CounterEnd < $MaxPage){ 
$NextPage = $CounterEnd + 1; 
echo "<a href=?PageNo=$NextPage>Следващи $PageSize</a>"; 
} 

//Print Last link if necessary 
if($CounterEnd < $MaxPage){ 
$LastRec = $RecordCount % $PageSize; 
if($LastRec == 0){ 
$LastStartRecord = $RecordCount - $PageSize; 
} 
else{ 
$LastStartRecord = $RecordCount - $LastRec; 
} 

print " : "; 
echo "<a href=?PageNo=$MaxPage>Последни</a>"; 
} 
?> 
</div> 
</td> 
</tr> 
</table> 
<?php 
mysql_free_result($result); 
mysql_free_result($TRecord); 
?> 
</body> 
</html>

Виж във файловете които са към админастративния панел само добави към менюто това:

ето това е менюто:

<div id="nav">
<a href="viewip.php">Посещения</a> <a href="viewban.php">Баннати IP</a>
</div>

добави един нов линк за новия файл:

<a href="viewipuni.php">Уникални посещения</a>

П.П. да знаеш че не съм тествал дали работи, че съм на работа и няма как. ако има някаква грешка казвай.
 
дава ми грешка на 25 ред от agentuni.php


Parse error: parse error, unexpected T_STRING in D:\apache\xampp\htdocs\agentuni.php on line 25

това е проблема ..
 
Код:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$data = date("j/n/Y G:i:s");
$adres = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'];
$useragent = ($_SERVER['HTTP_USER_AGENT']);
$brouser = ($_SERVER['HTTP_USER_AGENT']);
$var = file("http://api.hostip.info/get_html.php?ip=".$_SERVER["REMOTE_ADDR"]);
$img = "http://api.hostip.info/flag.php?ip=$ip";

$info1 = $var[0];
$info2 = $var[1];

include "config.php";

mysql_connect($server, $dbusername, $dbpassword)or die("Сайтът не може да се свърже към базата данни");
@mysql_select_db($db_name) or die("Грешна база данни");
$query="SELECT * FROM `agentuni` WHERE `ip` LIKE '$ip' ";
$result=mysql_query($query);
$chekip=mysql_num_rows($result);

$num=mysql_numrows($result);


if($chekip==0){

$connect = mysql_connect($server, $dbusername, $dbpassword)or die("Сайтът не може да се свърже към базата данни");
@mysql_select_db($db_name) or die("Грешна база данни");
$query = "INSERT INTO `agentuni` ( `id` , `ip` , `data`, `adres`, `brouser`, `info1`, `info2`, `img`)
VALUES (
'NULL', '$ip', '$data', '$adres', '$brouser', '$info1', '$info2', '$img'
);";
mysql_query($query);
}


?>
 
Как може да стане и там кадето е ИП-то примерно ако човека са е регнал в сайта да изкара ника му.

Дано да сте ме разбрали
 
jooorooo имам един въпрос. Като се запише ип-то в БД, после ако има посещение от същото ип, няма да го отчита. На това ли се вика уникални посещения? Аз мога да отворя страницата 10 пъти на ден в различно време, но мога и да натисна 10 пъти рефреша за 10 секунди. Има ли начин да се справя с това или пък добра идея ли е да го направя така, че в даден интервал да не отчита посещение от същия ип адрес (примерно 30 секунди - трябва да си много бръз за да отвориш и затвориш страницата за 30 секунди) - нещо като спам ограничение.
 
На системата без добавката ми дава грешка на 7-ми ред да ban.php
Не може да се свърже с базата данни...help?
 
Fester каза:
На системата без добавката ми дава грешка на 7-ми ред да ban.php
Не може да се свърже с базата данни...help?

Не си настройл конфиг файла.

@Galli Може да се направи и да отчита уникални всеки ден, дори да се повтарят ИП-тата но не за един ден. Всичко е възможно.

@iwanov може да стане да показва името. Въпроса е да се записва Ip адреса на потребителя я профила му. Тогава се прави една малка проверка и ако е посещението от неговото ИП, вместо да го изпише ще изпише името му.

@fcinter ето лик към архива.
http://webjo.no-ip.org/test1/New_Folder/agent+ban.rar
 
Настроен е..ако не бях го настроил нямаше да питам.

<?php

$server = "213.91.167.**";
$dbusername = "root";
$dbpassword = "fester";
$db_name = "webagent";

$PageSize = 25;

?>

Направил съм базата данни apache е пуснато и неще...
 
<?php

$server = "213.91.167.93";
$dbusername = "root";
$dbpassword = "fester";
$db_name = "webagent";

$PageSize = 25;

?>

$server = "213.91.167.93"; по дефоут е localhost. пробвай така.
 
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Program Files\xampp\htdocs\PrAstronomiq\Webagent\ban.php on line 7
Сайтът не може да се свърже към базата данни

:roll: :cry:
 
Пич разгледай си навсякаде настройките щото проблема не е в системата на 100% мога да гарантирам това :wink:
 

Back
Горе