Вход Регистрация
Файл: localhost/modules/gifts/gift.php
Строк: 101
<?php

/**
 * @package   Zcore
 * @author     Artem Sokolovsky
 * @url           http://vk.com/x_s_s
 */


// Инклудим ядро

include_once ($_SERVER['DOCUMENT_ROOT']."/lite/core.php"); 


// Только для зарегистрированых

    
$profile->access(true);    

// Подключаем ядро отправки email

    
$email = new email();

// Выводим шапку

    
$title 'Подарок';

// Инклудим шапку

include_once (ROOT.'template/head.php');

// Ищим подарок в базе

    
$queryguest DB :: $dbh -> query("SELECT * FROM `gifts` WHERE `id`=? LIMIT 1;", array($id));
    
$act $queryguest -> fetch();
    
// Только если данный подарок существует
    
    
if (!empty($act)) {
    
// Обработка полученого id получателя

    
$id_user = (empty($_GET['add'])) ? abs(intval($_GET['add']));
    
// Ищем пользователя в базе

    
$data DB :: $dbh -> queryFetch("SELECT `id`, `login`, `activation`, `email`, `date_aut`, `notice` FROM `user` WHERE `id`=? LIMIT 1;", array($id_user)); 

// Только если данный пользователь существует
    
    
if (!empty($data)) {  

// Антифлуд
    
    
$antiflood DB :: $dbh -> querySingle("SELECT count(*) FROM `gifts_user` WHERE `time`>? AND `user`=?;", array(time()-$config['antiflood_creation'], $user['id']));

// Только если был отправлен подарок в течении $config['antiflood_creation'] секунд
    
    
if (empty($antiflood)) {     
    
// Запрещаем добавлять самого себя

    
if ($data['id'] != $user['id']) {    
    
// Только если отправлен POST запрос

    
if (isset($_POST['save'])) {    
    
// Проверяем sid    
    
    
if (isset($_POST['sid']) && $system->check($_POST['sid']) == $user['sid']) {
    
// Проверяем монеты пользователя

    
if ($user['money'] >= $act['money']) {    

// Обработка сообщения
    
    
$message $system->check($_POST['message']);

// Обработка прав доступа

    
$access abs(intval($_POST['access']));     

// Обработка количества символов сообщения
    
    
if ($system->utf_strlen($message) >= && $system->utf_strlen($message) < 10000) {    
    
// Проверка доступа
    
    
if ($access == || $access == || $access == 2) {        

// Делаем запрос в базу

    
DB :: $dbh -> query("INSERT INTO `gifts_user` (`gift`, `message`, `access`, `user`, `profile`, `time`, `ip`, `ua`) VALUES (?, ?, ?, ?, ?, ?, ?, ?);", array($act['id'], $message$access$user['id'], $data['id'], time(), $system->ip(), $system->ua()));

// Выводим id подарка

    
$id_gift DB :: $dbh -> lastInsertId();  

// Обновляем данные

    
DB :: $dbh -> query("UPDATE `gifts` SET `send`=`send`+1 WHERE `id`=?", array($act['id']));  

// Генерируем случайный подарок отправителю

    
$rand rand(1,10);
    
$rand_money rand(1,5);

    if (
$rand == 5) {

// Добавляем бонус

    
DB :: $dbh -> query("UPDATE `user` SET `money`=`money`+'".$rand_money."' WHERE `id`=? LIMIT 1;", array($user['id']));

// Запись в логи

    
$message_logs 'Подарок от администрации сайта';
    
DB :: $dbh -> query("INSERT INTO `user_logs` (`section`, `user`, `message`, `price`, `money`, `ip`, `ua`, `time`) VALUES (?, ?, ?, ?, ?, ?, ?, ?);", array(1$user['id'], $message_logs$rand_money$user['money'] + $rand_money $act['money'], $system->ip(),  $system->ua(), time()));    

// Уведомляем 

    
$system->journal("0""Подарок от администрации сайта ".$rand_money." монет""/modules/services/logs""".$user['id']."""0");

    }    
    
// Снимаем монеты

    
DB :: $dbh -> query("UPDATE `user` SET `money`=`money`-'".$act['money']."' WHERE `id`=? LIMIT 1;", array($user['id']));    

// Запись в логи

    
$message_logs_user 'Подарок для <span style="font-weight: bold;">'.$data['login'].'</span>';
    
DB :: $dbh -> query("INSERT INTO `user_logs` (`section`, `user`, `message`, `price`, `money`, `ip`, `ua`, `time`) VALUES (?, ?, ?, ?, ?, ?, ?, ?);", array(0$user['id'], $message_logs_user$act['money'], $user['money'] - $act['money'], $system->ip(),  $system->ua(), time()));
    
// Уведомление на email

    
if ($data['activation'] == && $data['notice'] == && $data['date_aut'] < time()-300) {    
    
    
$email->send($data['email'], 'Новое уведомление на '.DOMAIN.'''
    Здравствуйте, <span style="font-weight: bold;">'
.$data['login'].'</span>, у Вас новый подарок <br />
    <a href="http://'
.DOMAIN.'/modules/gifts/user/'.$data['id'].'">
    <img src="http://'
.SERVER_DOMAIN.'/gifts/128/'.$act['id'].'.png"/>
    <br />
    '
.substr($message0100).'</a> <br />');

    }        
    
// Уведомление в журнал

    
DB :: $dbh -> query("INSERT INTO `journal` (`user`, `message`, `url`, `profile`, `read`, `time`, `section`) VALUES (?, ?, ?, ?, ?, ?, ?);", array(0"У Вас новый подарок""/modules/gifts/user/gift/".$id_gift.""$data['id'], 1time(), 0));
    
// Уведомляем

    
$system->redirect("Подарок успешно отправлен""/modules/gifts/user/".$data['id']."");    
    
// Выводим ошибки

    
} else { $system->show("Пожалуйста, выберите один из вариантов типа подарка"); }
    } else { 
$system->show("Слишком длинное или короткое сообщение"); }
    } else { 
$system->show("У вас не хватает монет"); }    
    } else { 
$system->show("Замечена подозрительная активность, повторите действие"); }    
    } else if (isset(
$_POST['back'])) {
    
header ("Location: /modules/gifts/dir/$act[dir]/$add");  
    }
    
// Выводим форму

    
echo '
    <div class="block">
    Подарок для '
.$profile->user($data['id']).'
    </div>
    <div class="block">
    <img src="http://'
.SERVER_DOMAIN.'/gifts/128/'.$act['id'].'.png"/>    <br />
    Стоимость: '
.$act['money'].' монет <br />
    </div>
    '
.($user['money'] < $act['money'] ? '
    <div class="hide">
    К сожалению, у вас не хватает монет.
    </div>
    ' 
'').'    
    <div class="block">
    <form method="post">
    Тип подарка: <br />
    <input type="radio" name="access" value="0" checked/> Публичный <br />
    <span style="font-size: 11px;"> Все будут видеть Ваш подарок, сообщение и Логин. </span> <br />
    <input type="radio" name="access" value="1" /> Личный <br />
    <span style="font-size: 11px;"> Все будут видеть Ваш подарок, но только получатель сможет видеть ваш Логин и сообщение. </span> <br />
    <input type="radio" name="access" value="2" /> Анонимный <br />
    <span style="font-size: 11px;"> Все будут видеть Ваш подарок. Только получатель увидит ваше сообщение. Никто не увидит ваш Логин. </span> <br />
    </div>
    <div class="block">
    Сообщение: (10000 символов) <br />
    <textarea cols="25" rows="3" name="message" class="textarea" /></textarea> <br />
    </div>
    <div class="block">    
    <input type="hidden" name="sid" value="'
.$user['sid'].'" />
    <input type="submit" name="save" value="Отправить" />
    <input type="submit" name="back" value="Отмена" />
    </form>
    </div>'
;    
    
// Выводим ошибки

    
} else { $system->show("Отказано в доступе"); }
    } else { 
$system->show("Не так быстро, подождите немного"); }    
    } else { 
$system->show("Выбранный вами пользователь не существует"); }     
    } else { 
$system->show("Выбранный вами подарок не существует"); }         

// Инклудим ноги    
    
include_once (ROOT.'template/foot.php');

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