Вход Регистрация
Файл: pages/friendssite.php
Строк: 238
<?php

define
('_IN_JOHNCMS'1);

$textl 'Сайты-друзья';
$headmod 'friendssite';
require_once (
"../incfiles/core.php");
require_once (
"../incfiles/head.php");

$maxsite 100//максимум сайтов
$adddate 3//число дней после реги для добавления сайта
$userssite 3//число разрешенных сайтов ждля одного юзера
switch ($act) {
    case 
'delete':
        
// Удаление сайта
        
$req mysql_query("SELECT * FROM `friendssite` WHERE id='$id' LIMIT 1");
        if (
$rights >= && mysql_num_rows($req)) {
            if (isset(
$_GET['yes'])) {
                
mysql_query("DELETE FROM `friendssite`  WHERE `id`='$id' LIMIT 1");
                
header('location: ' preg_replace('/(page|start)=[0-9]+/'''$_SESSION['prd']));
                exit;
            }
            else {
                
$_SESSION['prd'] = htmlspecialchars(getenv("HTTP_REFERER"));
                echo 
'<div class="rmenu"><p>Вы уверены в удалении сайта?<br/><a href="friendssite.php?act=delete&amp;id=' $id '&amp;yes">Да</a> | <a href="' htmlspecialchars(getenv("HTTP_REFERER")) . '">Нет</a></p></div>';
            }
        }
        break;

    case 
'edit':
        
// Редактирование сайта
        
$req mysql_query("SELECT * FROM `friendssite` WHERE id='$id' LIMIT 1");
        if (
$rights >= && mysql_num_rows($req)) {
            if (isset(
$_POST['submit'])) {
                
$adres = isset($_POST['adres']) ? parse_url(trim($_POST['adres'])) : array();
                
$adres mb_substr($adres['host'], 025);
                
$name = isset($_POST['name']) ? mb_substr(trim($_POST['name']), 050) : '';
                
$opis = isset($_POST['opis']) ? mb_substr(trim($_POST['opis']), 0200) : '';
                
$count = isset($_POST['count']) ? abs(intval($_POST['count'])) : 0;
                
$error = array();
                if (empty(
$adres) || empty($name) || empty($opis))
                    
$error[] = 'Не заполненно поле';
                else if (
preg_match("/[^da-zA-Z.-/?:_]+/"$adres))
                    
$error[] = 'Недопустимые символы в адресе сайта!';
                if(
$error) {
                    echo 
functions::display_error($error'<a href="friendssite.php?act=edit&amp;id=' $id '">Повторить</a>');
                    require_once (
"../incfiles/end.php");
                    exit;
                }
                
mysql_query("UPDATE `friendssite` SET `name`='" mysql_real_escape_string($name) . "', `opis`='" mysql_real_escape_string($opis) . "', `site`='http://" mysql_real_escape_string($adres) . "', `count`='$count' WHERE `id`='$id' LIMIT 1");
                
header('location: ' preg_replace('/(page|start)=[0-9]+/'''$_SESSION['prd']));
                exit;
            }
            else {
                
$_SESSION['prd'] = htmlspecialchars(getenv("HTTP_REFERER"));
                
$res mysql_fetch_array($req);
                echo 
'<div class="phdr"><b>Изменение сайта</b></div>' .
                
'<div class="menu"><form action="friendssite.php?act=edit&amp;id=' $id '" method="post">' .
                
'Адрес&nbsp;-&nbsp;max. 25:<br/><input type="text" name="adres" maxlength="25" value="' functions::checkout($res['site']) . '"/><br/> ' .
                
'Название&nbsp;-&nbsp;max. 50:<br/><input type="text" name="name" maxlength="50" value="' functions::checkout($res['name']) . '"/><br/>' .
                
'Описание&nbsp;-&nbsp;max. 200:<br/><textarea cols="20" rows="2" name="opis">' htmlentities($res['opis'], ENT_QUOTES'UTF-8') . '</textarea><br/>' .
                
'Просмотров:<br/><input type="text" name="count" maxlength="50"  value="' $res['count'] . '"/><br />' .
                
'<input name="submit" type="submit" title="Нажмите для добавления сайта" value="Сохранить"/></form>' .
                
'</div><div class="phdr"><a href="' $_SESSION['prd'] . '">Назад</a></div>';
            }
        }
        break;

    case 
'redirect':
        
// Редирект
        
$req mysql_query("SELECT `site` FROM `friendssite` WHERE `id`='$id' AND `type`='1'");
        if(
mysql_num_rows($req)) {
            
$res mysql_fetch_assoc($req);
            if (!
$_SESSION['fr_site_' $id]) {
                
mysql_query("UPDATE `friendssite` SET `count` = (`count`+1) WHERE `id` = '$id' LIMIT 1");
                
$_SESSION['fr_site_' $id] = true;
            }
            
header('location:' $res['site']);
            exit;

        }
        break;

    case 
'mass_del':
        
// Массовое удаление сайтов
        
if ($rights >= 6) {
            if (isset(
$_GET['yes'])) {
                foreach (
$_SESSION['dc'] as $delid) {
                    
mysql_query("DELETE FROM `friendssite`  WHERE `id`='" intval($delid) . "';");
                }
                
header('location: ' preg_replace('/(page|start)=[0-9]+/'''$_SESSION['prd']));
                exit;
            }
            else {
                if (empty(
$_POST['delch'])) {
                    echo 
functions::display_error('Вы ничего не выбрали для удаления''<a href="' htmlspecialchars(getenv("HTTP_REFERER")) . '">Назад</a>');
                    require_once (
"../incfiles/end.php");
                    exit;
                }
                foreach (
$_POST['delch'] as $v) {
                    
$dc[] = intval($v);
                }
                
$_SESSION['dc'] = $dc;
                
$_SESSION['prd'] = htmlspecialchars(getenv("HTTP_REFERER"));
                echo 
'<div class="rmenu"><p>Вы уверены в удалении сайтов?<br/><a href="?act=mass_del&amp;yes">Да</a> | <a href="' htmlspecialchars(getenv("HTTP_REFERER")) . '">Нет</a></p></div>';
            }
        }
        break;

     case 
'mod_site':
        
// Сайты на модерации
        
if ($rights >= 6) {
            if (isset(
$_GET['pr'])) {
                
mysql_query("UPDATE `friendssite` SET `type` = '1' WHERE `id` = '$id' LIMIT 1");
                
$total mysql_result(mysql_query("SELECT COUNT(*) FROM `friendssite` WHERE `type`='1'"), 0);
                if (
$total $maxsite)
                    
mysql_query("DELETE FROM `friendssite` where `type`='1' ORDER BY `vr` ASC LIMIT 1");
                
header("location: friendssite.php?act=mod_site");
                exit;
            } elseif (isset(
$_GET['vs'])) {
                
$total mysql_result(mysql_query("SELECT COUNT(*) FROM `friendssite` WHERE `type`='1'"), 0);
                if (
$total $maxsite) {
                    
$total_mod mysql_result(mysql_query("SELECT COUNT(*) FROM `friendssite` WHERE `type`='2'"), 0);
                    
mysql_query("DELETE FROM `friendssite` where `type`='1' ORDER BY `vr` ASC LIMIT $total_mod");
                }
                
mysql_query("UPDATE `friendssite` SET `type` = '1' WHERE `type` = '2'");
                
header("location: friendssite.php?act=mod_site");
                exit;
            }
            else{

                echo 
'<div class="phdr"><b><a href="friendssite.php">Сайты-друзья</a></b> | Проверка сайтов</div>';
                
$req mysql_query("SELECT `friendssite`.*, `users`.`name` AS `nick` FROM `friendssite` LEFT JOIN `users` ON `friendssite`.`iduser` = `users`.`id` WHERE `friendssite`.`type`='2'");
                if(
mysql_num_rows($req)) {
                    echo 
'<form action="friendssite.php?act=mass_del" method="post">';
                    while (
$res mysql_fetch_assoc($req)) {
                        echo 
$i '<div class="list2">' '<div class="list1">';
                        echo 
'<a href="friendssite.php?act=redirect&amp;id=' $res['id'] . '"><b>' functions::checkout($res['name']) . '</b></a><br />' functions::checkout($res['opis'], 11);
                        echo 
'<br/><small>Добавил <a href="../users/profile.php?user=' $res['iduser'] . '">' $res['nick'] . '</a>, ' functions::display_date($res['vr']) . '</small>';
                        echo 
'<div class="sub"><input type="checkbox" name="delch[]" value="' $res["id"] . '"/>&nbsp;<a href="friendssite.php?act=delete&amp;id=' $res["id"] . '"><span class="red">Удалить</span></a> | <a href="friendssite.php?act=mod_site&amp;id=' $res["id"] . '&amp;pr">Принять</a> | <a href="friendssite.php?act=edit&amp;id=' $res["id"] . '">Изменить</a></div></div>';
                        ++
$i;
                    }
                    echo 
'<div class="rmenu"><input type="submit" value="Удалить отмеченные"/></div></form>' .
                    
'<div class="gmenu"><a href="friendssite.php?act=mod_site&amp;vs">Принять все сайты</a></div>';
                }
                else
                    echo 
'<div class="menu"><p>Список пуст</p></div>';
                echo 
'<div class="phdr"><a href="friendssite.php">Назад</a></div>';
            }

        }
        break;

    case 
'add_site':
        
// Добавление сайта
        
if ($user_id) {
            
$total_site mysql_result(mysql_query("SELECT COUNT(*) FROM `friendssite` WHERE `iduser`='$user_id'"), 0);
            
$error = array();
            if (
$total_site >= $userssite && $rights 6)
                
$error[] = 'Одному пользователю разрешено добавлять только ' $userssite ' сайта!';
            if ((
time()  - $datauser['datereg']) < ($adddate 86400) && $rights 6)
                
$error[] = 'Cайты могут добавлять только пользователи, которые провели на сайте не менее ' $adddate ' дней!';
            
$flood functions::antiflood();
            if (
$flood)
                
$error[] = 'Антифлуд! Пожалуйста, подождите ' $flood ' сек.';
            if(
$error) {
                echo 
display_error($error'<a href="friendssite.php">Назад</a>');
                require_once (
"../incfiles/end.php");
                exit;
            }
            if (isset(
$_POST['submit'])) {
                
$adres = isset($_POST['adres']) ? parse_url(trim($_POST['adres'])) : array();
                
$adres mb_substr($adres['host'], 025);
                
$name = isset($_POST['name']) ? mb_substr(trim($_POST['name']), 050) : '';
                
$opis = isset($_POST['opis']) ? mb_substr(trim($_POST['opis']), 0200) : '';
                
$type $rights >= 2;
                if (empty(
$adres) || empty($name) || empty($opis))
                    
$error[] = 'Не заполненно поле';
                else if (
preg_match("/[^da-zA-Z.-/?:_]+/"$adres))
                    
$error[] = 'Недопустимые символы в адресе сайта!';
                if(!
$error) {
                    
$total mysql_result(mysql_query("SELECT COUNT(*) FROM `friendssite` WHERE `name`='" mysql_real_escape_string($name) . "' OR  `site`='http://" mysql_real_escape_string($adres) . "'"), 0);
                     if (
$total >= 1)
                        
$error[] = 'Такой сайт уже есть в базе!';

                }
                if(
$error) {
                    echo 
functions::display_error($error'<a href="friendssite.php?act=add_site">Повторить</a>');
                    require_once (
"../incfiles/end.php");
                    exit;
                }
                
mysql_query("INSERT INTO `friendssite` SET `vr`='" time() . "', `iduser`='$user_id', `type`='$type', `name`='" mysql_real_escape_string($name) . "', `opis`='" mysql_real_escape_string($opis) . "', `site`='http://" mysql_real_escape_string($adres) . "'");
                
mysql_query("UPDATE `users` SET `lastpost` = '" time() . "' WHERE `id` = '$user_id'");
                echo 
'<div class="gmenu">Ваш сайт добавлен' . ($rights >= '' ' и после проверки появится в списке наших друзей') . '<br/><a href="friendssite.php">К списку сайтов</a></div>';
            }
            else {
                echo 
'<div class="phdr"><b><a href="friendssite.php">Сайты-друзья</a></b> | Добавление сайта</div>' .
                
'<div class="bmenu">Разрешены только прямые ссылки на сайты, все остальное будет обрезанно</div><div class="menu">' .
                
'<form action="friendssite.php?act=add_site" method="post">' .
                
'Адрес&nbsp;-&nbsp;max. 25:<br/><input type="text" name="adres" maxlength="25" value="http://"/><br/> ' .
                
'Название&nbsp;-&nbsp;max. 50:<br/><input type="text" name="name" maxlength="50"/><br/>' .
                
'Описание&nbsp;-&nbsp;max. 200:<br/><textarea cols="20" rows="2" name="opis"></textarea><br/>' .
                
'<input name="submit" type="submit" title="Нажмите для добавления сайта" value="Добавить сайт"/></form>' .
                
'</div><div class="phdr"><a href="friendssite.php">Назад</a></div>';
            }
        }
        else {
            
header('location: ../login.php');
            exit;
        }
        break;

    default:
        
// Список сайтов
        
echo '<div class="phdr"><b>Сайты-друзья</b></div>';
        
$total_site mysql_result(mysql_query("SELECT COUNT(*) FROM `friendssite` WHERE `iduser`='$user_id'"), 0);
        if (
$user_id && ($total_site $userssite || $rights >= 6) && ((time()  - $datauser['datereg']) > ($adddate 86400) || $rights >= 6))
            echo 
'<div class="gmenu"><a href="friendssite.php?act=add_site">Добавить сайт</a></div>';
        if (
$rights >= 6) {
            
$total_mod mysql_result(mysql_query("SELECT COUNT(*) FROM `friendssite` WHERE `type`='2'"), 0);
            if(
$total_mod)
                echo 
'<div class="rmenu"><a href="friendssite.php?act=mod_site">Сайты на модерации</a> ' $total_mod '</div>';
        }
           
$total mysql_result(mysql_query("SELECT COUNT(*) FROM `friendssite` WHERE `type`='1'"), 0);
        if(
$total) {
            
$req mysql_query("SELECT `friendssite`.*, `users`.`name` AS `nick` FROM `friendssite` LEFT JOIN `users` ON `friendssite`.`iduser` = `users`.`id` WHERE `friendssite`.`type`='1' ORDER BY `friendssite`.`count` DESC LIMIT $start$kmess");
            if (
$rights >= 6)
                echo 
'<form action="friendssite.php?act=mass_del" method="post">';
             while (
$res mysql_fetch_assoc($req)) {
                 echo 
$i '<div class="list2">' '<div class="list1">';
                  echo 
'<a href="friendssite.php?act=redirect&amp;id=' $res['id'] . '"><b>' functions::checkout($res['name']) . '</b></a> (' $res['count'] . ')<br />' $res['opis'];
                 echo 
'<br/><small>Добавил <a href="../users/profile.php?user=' $res['iduser'] . '">' $res['nick'] . '</a>, ' functions::display_date($res['vr']) . '</small>';
                 if (
$rights >= 6)
                     echo 
'<div class="sub"><input type="checkbox" name="delch[]" value="' $res["id"] . '"/>&nbsp;<a href="friendssite.php?act=delete&amp;id=' $res["id"] . '"><span class="red">Удалить</span></a> | <a href="friendssite.php?act=edit&amp;id=' $res["id"] . '">Изменить</a></div>';
                 echo 
'</div>';
                ++
$i;
              }
            if (
$rights >= 6)
                 echo 
'<div class="rmenu"><input type="submit" value="Удалить отмеченные"/></div></form>';
        }
        else
            echo 
'<div class="menu"><p>Список пуст</p></div>';
           echo 
'<div class="phdr">Всего сайтов:&nbsp;' $total '</div>';
           if (
$total $kmess) {
               echo 
'<p>' functions::display_pagination('friendssite.php?'$start$total$kmess) . '</p>';
            echo 
'<p><form action="friendssite.php" method="get"><input type="text" name="page" size="2"/><input type="submit" value="К странице &gt;&gt;"/></form></p>';
           }
}
require_once (
"../incfiles/end.php");

?>
Онлайн: 1
Реклама