Дайте пожалуйста ко онлайна. Тоесть в котором будет отображаться сколько чел на сайте
неадкевату не что давать не буду. (знаю предупреждение)
kyrgyz, под что именно? Для авторизованых юзверов?
нет просто сколько посетителей на сайте
Создаёшь файл online.php
Содержимое
[code]<?php
$config = array(
\'online_time\' => \'1\', //В минутах -- зачем весь масив? не пойму.
);
$connect_config = array(
\'host\' => \'localhost\',
\'user\' => \'root\',
\'pass\' => \'mangos\',
\'db\' => \'guest_online\'
);
//передаём или читаем uniq_id с кукисов
if(!$_COOKIE[\'uniq_id\'])
{
$uniq_id = uniqid();
setcookie(\'uniq_id\',$uniq_id,(time()+3600*24*30));
}
else $uniq_id = $_COOKIE[\'uniq_id\'];
//соеденяемся с базой и проверяем
$con = mysql_connect($connect_config[\'host\'],$connect_config[\'user\'],$connect_config[\'pass\'],true);
if($con == false) die(\'<p style=\"color:red; font-weight:bold; font-size:14px\">Failed to connect with DB \'.$connect_config[\'db\'].\'!</p>\');
mysql_select_db($connect_config[\'db\'],$con) or die(\'<p style=\"color:red; font-weight:bold; font-size:14px\">Failed to connect with \'.$connect_config[\'user\'].\'Удалён
//удаляем устарелые сесии (60 минут? О_о)
mysql_query(\"delete from online_list where last_time<\".(time()-$config[\'online_time\']*60),$con);
// зачем эта проверка? там всегда ip. (читать суперглобальные массивы)
if(preg_match(\"/[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}/isU\",$_SERVER[\'REMOTE_ADDR\'])
// isU - зачем? тут ip 999.999.999 будет считаться правильным
and !preg_match(\"/[^a-zA-Z0-9\\_\\[\\]\\.\\(\\)\\-]/isU\",$uniq_id)) // умора...
// записав по другому, получаем:
// and preg_match(\"/[a-zA-Z0-9\\_\\[\\]\\.\\(\\)\\-]/isU\",$uniq_id)) // что по своей сути бред (читать регулярные выражения)
{
$last_time = mysql_result(mysql_query(\"select last_time from online_list where uniq_id = \'\".$uniq_id.\"\' and ip = \'\".$_SERVER[\'REMOTE_ADDR\'].\"\'\",$con),0,0);
if(!$last_time) mysql_query(\"insert into online_list (uniq_id, ip, last_time) values (\'\".$uniq_id.\"\', \'\".$_SERVER[\'REMOTE_ADDR\'].\"\', \'\".time().\"\')\",$con);
else mysql_query(\"update online_list set last_time = \'\".time().\"\' where uniq_id = \'\".$uniq_id.\"\' and ip = \'\".$_SERVER[\'REMOTE_ADDR\'].\"\'\",$con);
}
$online = intval(mysql_result(mysql_query(\"select count(*) from online_list where last_time>\".(time()-$config[\'online_time\']*60),$con),0,0));
//$online - кол-во гостей на сайте
mysql_close($con);
unset($con);
echo $online;
?>[/code]
И к базе подлючаешь
Файл выносишь так: <? include \'online.php\';?>
<?php
CREATE TABLE `online_list` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`ip` varchar(255) default NULL,
`uniq_id` varchar(255) default NULL,
`last_time` varchar(255) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
?>
и выполни запрос обязательно
А без файла ни как? Над просто тип как информер?