PDA

Просмотр полной версии : !!СРОЧНО НУЖЕН СКРИПТ!!


Godfather Bulan
05.08.2008, 00:03
на главной странице форума античата список тех, кто онлайн. нужен скрипт такой, чтобы был вывод на html странице.
И нужен граббер RSS с ачата. как тут http://godlab.ru/faq/

lisa99
05.08.2008, 01:03
на главной странице форума античата список тех, кто онлайн. нужен скрипт такой, чтобы был вывод на html странице.
И нужен граббер RSS с ачата. как тут http://godlab.ru/faq/

куда это все ты собрался вставлять?
т.е. скрипт...для форума или cms или просто гипертестовых страниц?

все это есть. уточни

Godfather Bulan
05.08.2008, 01:28
рабочий стол оформить в стиле ачата надо. хостинг с пхп есть

.:EnoT:.
05.08.2008, 01:50
на главной странице форума античата список тех, кто онлайн. нужен скрипт такой, чтобы был вывод на html странице.
эээ..типо список юзеров?
Всё это безобразие делается примерно так:
Создаёшь с БД таблицу например `sessions` примерно с таким содержанием:
CREATE TABLE `sessions` (
`session` varchar(32) NOT NULL,
`date` datetime NOT NULL,
`username` varchar(100)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

Далее в главном файле делаем примерно следующее:

<?php
session_start();
$session = session_id();

$_SESSION['username'] = !empty($_COOKIE['name']) ? $_COOKIE['name'] : ''; //Имя юзера (для примера берём с куки)

$interval = 15; //интервал бездействия юзера в мин

#Экранируем имя юзера (но лучше сделать функцию получше =)))
$u_name = !get_magic_quotes_gpc() ? mysql_real_escape_string($_SESSION['username']) : $_SESSION['username'];
$sql = mysql_query("SELECT * FROM `sessions` WHERE `session` = '".$session."'");
if($sql && mysql_num_rows($sql) > 0){
#Если сессия уже существует то обновляем время
mysql_query("UPDATE `sessions` SET `date` = NOW(), `username` = '".$u_name."' WHERE `session`='".$session."'");
}else{
#Если не существует то заносим
mysql_query("INSERT INTO `sessions` VALUES('".$session."', NOW(),'".$u_name."')");
}
#Удаляем старые сесии
mysql_query("DELETE FROM `sessions` WHERE `date` < NOW() - INTERVAL '".$interval."' MINUTE");

?>

Далее делаем функцию которая получает кол-во гостей и пользователей:
function online(){
$sql = mysql_query("SELECT COUNT(*) FROM `sessions` WHERE `username` != '' UNION SELECT COUNT(*) FROM `sessions` WHERE `username` = ''");
$users = mysql_result($sql, 0);
$guests = mysql_result($sql, 1);
$vsego = $users + $guests;
return array(
'vsego' => intval($all),
'users' => intval($users),
'guests' => intval($guests])
);
}

Соответственно фукция возвращает массив. Выводится так:
<?php
$online = online();
echo 'Сейчас на сайте '.$online['vsego'].' пользователей ('.$online['users'].' гостей и '.$online['guests'].' гостей)';
?>
А ники юзеров выводятся просто циклом, типо того:
$sql = mysql_query("SELECT * FROM `sessions` WHERE `username` != ''");
if($sql && mysql_num_rows($sql) > 0){
while($nick = mysql_fetch_array($sql)){
echo htmlspecialchars($nick['username']).'<br/>';
}
}

Короче в таком духе))

Godfather Bulan
05.08.2008, 01:54
эм.. не то))) еще предложения?))) надо именно С АЧАТА!!

.:EnoT:.
05.08.2008, 02:10
Слава богу обьяснил в аське что за скрипт нужен))
проверил. вроде работает.

<?php
function send(){
$send = "GET /index.php? HTTP/1.1\r\n";
$send .= "Host: forum.antichat.ru\r\n";
$send .= "User-Agent: Mozilla/5.0\r\n";
$send .= "Pragma: no-cache\r\n";
$send .= "Connection: Close\r\n\r\n";
$socket = @fsockopen('forum.antichat.ru', 80, $errno, $errstr, 30);
fputs($socket, $send);
$line = '';
while(!feof($socket)){
$line .= fgets($socket, 4096);
}
preg_match('#<td class="alt1" width="100%">(.+)<\/div>#Us', $line, $out);
return strip_tags($out[1]);
}

echo send();
?>

UPD:
Бля, чё тупанул. можно было и без сокетов))
<?php
$site = file_get_contents('http://forum.antichat.ru');
preg_match('#<td class="alt1" width="100%">(.+)<\/div>#Us', $site, $out);
echo strip_tags($out[1]);
?>

Godfather Bulan
05.08.2008, 02:31
актуален только вопрос с Rss

Shadow_p1raT
05.08.2008, 05:16
Сам когда-то писал

<?php
$rss=simplexml_load_file('http://forum.antichat.ru/news.rss');
foreach ($rss->channel->item as $item) {
echo "<a href='". $item->link. "'>". iconv("UTF-8", "WINDOWS-1251", $item->title). "</a>";
echo "<p>". iconv("UTF-8", "WINDOWS-1251", $item->description). "</p>";
}
?>