| |
|
|
| | короче пробывал написать текстовый счетчик хостов чтобы он не обнулялся с антинакруткой в 15 минут. тоесть чтобы если пару раз в 15 минут зайдешь то он защитывает только один хост:) а через 15 минут +1 к счетчику был...вот код:
<?php
$time = 15;
$DB_Host = "localhost"; // Хост
$DB_User = "root"; // Пользователь
$DB_Pass = ""; // Пароль
$DB_Name = "hosts"; // Имя БД
function SQLConnect($DB_Host, $DB_User, $DB_Pass)
{
if(mysql_connect($DB_Host, $DB_User, $DB_Pass))
{
return(TRUE);
} else
{
return(FALSE);
}
}
$times = (time() - ($time * 60));
if(SQLConnect($DB_Host, $DB_User, $DB_Pass))
{
mysql_select_db($DB_Name);
//$UA = htmlspecialchars($_SERVER['HTTP_USER_AGENT']);
$UA = $_GET['u'];
if(!get_magic_quotes_gpc())
{
$UA = mysql_escape_string($UA);
}
$q = mysql_query("SELECT * FROM `hosts`");
if(!mysql_result( mysql_query("SELECT COUNT(*) FROM `hosts` WHERE `user`='".$UA."' AND `time` > ".$times ), 0))
{
mysql_query("INSERT INTO `hosts` VALUES(0, '".$UA."', ".time().")");
}
} else
{
echo("<b>Ошибка!!! Не могу соединиться с БД MySQL!</b><br />");
}
echo(mysql_num_rows($q));
echo(mysql_error());
?>
|
и таблица
CREATE TABLE `hosts`
(
`id` int(15) NOT NULL auto_increment,
`user` CHAR(70),
`time` int(15) NOT NULL,
PRIMARY KEY(`id`)
)
TYPE=MyISAM;
|
короче напишите код чтобы он правильно работал:) мой считает как хиты а не хосты:( и с каждым обновлением +1 дает....на локале работает на хосте нет | |
| |
|
|
| |
|
|
| |
для: Великий Одмин
(23.06.2007 в 17:09)
| | | a) Ваш код имеет уязвимость при magic_quotes_gpc = on. А именно: User-Agent - HTTP-заголовок и "магические кавычки" автоматически к нему никогда не добавляются (magic_quotes_GPC - GET, POST, COOKIE).
b)
$q = mysql_query("SELECT * FROM `hosts`");
echo(mysql_num_rows($q));
Стоит заменить на
<?php
$q = mysql_query("SELECT COUNT(*) FROM `hosts`;");
echo(mysql_result($q, 0));
?>
|
Так как в Вашем случае все данные из таблицы "hosts" будут хранится в буфере СУБД, что плохо.
c) Если что-то не работает, имеет смысл проверять каждый запрос:
mysql_query(...) or die(mysql_error()); | |
| |
|
|