/** * résolution des combats (chargé depuis index.php) **/ public function solve_combats() { // identification de l'attaquant et du défenseur $attacker = new User($this->attacker_id); $defender = new User($this->target_id); // ... et de leur armée $army_att = new Army($this->attacker_id, $this->id); $army_def = new Army($this->target_id); // affichage de l'armée attaquante $mess_att = ''; foreach ($army_att->troops as $unit) { if ($unit->quantity > 0) { $mess_att .= '<li>' . $unit->quantity . ' ' . $unit->name . '</li>'; } } // affichage de l'armée en défence $mess_def = ''; if ($army_def->total_units > 0) { foreach ($army_def->troops as $unit) { $mess_def .= '<li>' . $unit->quantity . ' ' . $unit->name . '</li>'; } } else { $mess_def .= "<li>Il n'y avait personne pour défendre cet empire</li>"; } $message = "<table><tr>" . "<th style=\"width:50%\">Attaquant : {$attacker->pseudo}<br>flotte : {$army_att->total_units} unité(s)</th>" . "<th style=\"width:50%\">Défenseur : {$defender->pseudo}<br>flotte : {$army_def->total_units} unité(s)</th>" . "</tr><tr><td><ul>{$mess_att}</ul></td><td><ul>{$mess_def}</ul></td></tr>"; if ($army_def->total_units > 0) { // résolution du combat en 6 tours (on boucle tant qu'il reste des unités à un joueur $i = 0; while ($i < 6 && $army_att->total_units > 0 && $army_def->total_units > 0) { $i++; // il faut temporiser les dégats de l'attaquant pour qu'il puisse attaquer de toute sa force // car va lui détruire des unités dès sa première attaque $dommages = $army_def->total_damage; $def_res = $army_def->split_damage($army_att->total_damage); $att_res = $army_att->split_damage($dommages); $message .= "<tbody><tr><th colspan=\"2\">Tour {$i}</th></tr><tr><td>{$att_res}</td><td>{$def_res}</td></tr></tbody>"; } } // résultat du combat if ($army_def->total_units <= 0) { $available = round($defender->ressources / 3); $can_take = round($army_att->total_life); $amount = $available - $can_take > 0 ? $can_take : $available; $attacker->increase_ressource($amount); $defender->increase_ressource(-$amount); $result = 'Vainqueur : ' . $attacker->pseudo . '<br>Ressources pillées : ' . $amount; } elseif ($army_att->total_units <= 0) { $result = 'Vainqueur : ' . $defender->pseudo; } else { $result = 'Aucun vainqueur'; } $message .= "<tr><td colspan='2'>{$result}</td></tr></table>"; $this->reset_army(); // envoi les rapports de combats $mail = new Mail(); $mail->send_mail($attacker->id, $message, 'Rapport de combat (' . $defender->pseudo . ')'); // on changer uniquement le destinataire et on le renvoi $mail->recipient = $defender->id; $mail->add(); }
$products_list .= $_SESSION['fw_basket'][$i]['id'] . '|' . $_SESSION['fw_basket'][$i]['number'] . ','; $total_number = $total_number + $_SESSION['fw_basket'][$i]['number']; $rel_prod[] = "('" . $_SESSION['fw_basket'][$i]['id'] . "','" . $order_id . "','" . $_SESSION['fw_basket'][$i]['number'] . "')"; } $db->query("INSERT INTO fw_orders_products (product_id,order_id,product_count) VALUES " . implode(",", $rel_prod)); $_SESSION['fw_basket'] = array(); $smarty->assign("name", $_SESSION['fw_user']['name']); $smarty->assign("site_url", BASE_URL); $smarty->assign("date", time()); $smarty->assign("order_total", $total_price); $smarty->assign("number", $total_number); $smarty->assign("currency", DEFAULT_CURRENCY); $body = $smarty->fetch($templates_path . '/order_notice.txt'); Mail::send_mail(SEND_ORDER_TO, ADMIN_MAIL, "Новый заказ в интернет магазине", $body, '', 'text', 'standard', 'Windows-1251'); $admin_body = $smarty->fetch($templates_path . '/admin_order_notice.txt'); Mail::send_mail(ADMIN_MAIL, ADMIN_MAIL, "Новый заказ в интернет магазине", $admin_body, '', 'text', 'standard', 'WIndows-1251'); $page_found = true; $template = 'order_done.html'; } } else { header("Location: " . BASE_URL); } break; case count($url) == 2 && preg_match("/\\?search_product=(.+)\$/", $url[$n]) or count($url) == 2 && preg_match("/\\?search_product=(.+)&page=([1-9]+)\$/", $url[$n]): $navigation[] = array("url" => 'search', "title" => 'Поиск'); $search = mysql_real_escape_string($_GET['search_product']); $search = urldecode($search); $current_url_pages[$n] = eregi_replace("&page=([1-9]+)", "", $current_url_pages[$n]); if (isset($_GET['page']) && $_GET['page'] != '') { $page = $_GET['page']; } else {
header("Location: index.php?mod=guestbook"); die; } if (isset($_POST['submit_edit_message'])) { $id = $_POST['id']; $text = Common::strip_forum_tags($_POST['message_text']); $author = $_POST['message_author']; $mail = $_POST['message_author_mail']; $answer = Common::strip_forum_tags($_POST['message_answer']); $db->query("UPDATE fw_guestbook SET author='{$author}',author_mail='{$mail}',message='{$text}',answer='{$answer}' WHERE id='{$id}'"); if (isset($_POST['send_answer']) && $mail != '') { $smarty->assign("site_url", BASE_URL); $smarty->assign("message", $text); $smarty->assign("answer", $answer); $body = $smarty->fetch(BASE_PATH . '/modules/guestbook/answer_template.txt'); Mail::send_mail($mail, ADMIN_MAIL, "ќтвет на ваше сообщение", $body, '', 'html', 'standard', 'Windows-1251'); } $smarty->assign("refresh_parent", "true"); } /*--------------------------------- ќ“ќЅ–ј∆≈Ќ»≈ ------------------------------*/ switch (TRUE) { case $action == 'add': $navigation[] = array("url" => BASE_URL . "/admin/?mod=guestbook&action=add", "title" => 'ƒобавить собщение'); $smarty->assign("mode", "add"); $template = 'guestbook.a_edit.html'; break; case $action == 'edit' && isset($_GET['id']): Common::check_priv("{$priv}"); $id = $_GET['id']; $message = $db->get_single("SELECT * FROM fw_guestbook WHERE id='{$id}' LIMIT 1"); $message['message'] = Common::add_forum_tags($message['message']);
if (!User::isLogged()) { $errors[] = "erreur vous n'êtes plus connecté"; } else { $army_owned = new Army($user->id); $mails = Mail::get_mails($user->id); $queues = $queue->get_all_queues(); if (!empty($_POST) && isset($_POST['ajax'])) { switch ($_POST['action']) { case 'mark_as_read': $mail = new Mail(intval($_POST['item_id'])); $mail->update_value('unread', 0); break; case 'send_mail': $mail = new Mail(); echo $mail->send_mail($_POST['to'], $_POST['content'], $_POST['topic'], $user->id); break; case 'delete_mail': $mail = new Mail(intval($_POST['item_id'])); $mail->delete(); break; case 'add_to_queue': if (count($queues) < $queue->get_queue_limit()) { $unit_id = intval($_POST['unit_id']); $quantity = intval($_POST['quantity']); $price = round($army_owned->troops[$unit_id]->price * $quantity); $building_time = round($army_owned->troops[$unit_id]->building_time * $quantity); if ($price <= $user->ressources) { $item_added = $queue->add_to_queue($unit_id, $user->id, $quantity, $building_time); $new_ressources = $user->increase_ressource(-$price); echo json_encode(['status' => 'ok', 'new_ressources' => $new_ressources, 'queue' => $item_added]);
$smarty->assign("error_message", "Введённый e-mail имеет неправильный формат"); } else { $mail = $_POST['nm_mail']; } $text = Common::strip_forum_tags($_POST['nm_text']); if ($check) { if (GB_PREMODERATION == 'on') { $status = '0'; } else { $status = '1'; } $db->query("INSERT INTO fw_guestbook(author,message,insert_date,author_mail,status) VALUES('{$author}','{$text}','" . time() . "','{$mail}','{$status}')"); $body = $smarty->fetch(BASE_PATH . '/modules/guestbook/admin_mail_template.txt'); $headers = "Content-type: text/html; charset=windows-1251 \r\n"; $headers .= "From: <" . BASE_URL . ">\r\n"; Mail::send_mail($mail, ADMIN_MAIL, "Новое сообщение на сайте " . BASE_URL, $body, "", "text", "standard", "windows-1251"); $location = $_SERVER['HTTP_REFERER']; header("Location: {$location}"); } } if (preg_match("/^page_([0-9]+)\$/", $url[$n])) { list(, $page) = explode("_", $url[$n]); $url = array_values($url); unset($url[$n]); unset($current_url_pages[count($current_url_pages) - 1]); } else { $page = 1; } switch (TRUE) { case count($url) == 1: $page_found = true;
if ($switch_default == 'on' or $switch_support == 'on') { $smarty->assign("otr_list_support", $db->get_all("SELECT * FROM fw_otr ORDER BY title ASC")); $smarty->assign("otr_url", $support_url); } if ($main_module == 'on') { require_once 'lib/class.photoalbum.php'; require_once 'lib/class.table.php'; require_once 'lib/class.form.php'; require_once 'lib/class.mail.php'; $navigation[] = array("url" => $module_url, "title" => $node_content['name']); if (isset($_POST['submit_otr_comment'])) { $name = $_POST['user_name']; $email = $_POST['user_mail']; $msg = $_POST['user_msg']; Mail::send_mail(ADMIN_MAIL, ADMIN_MAIL, "—ообщение из раздела 'ќтраслевые решени¤'", $msg, '', 'text', 'standard', 'WIndows-1251'); $smarty->assign("send_msg", "¬аше сообщение отправлено администратору сайта. —пасибо."); } switch (TRUE) { case count($url) == 1: $page_found = true; $otr_list = $db->get_all("SELECT * FROM fw_otr ORDER BY title ASC"); $smarty->assign("otr_list", $otr_list); $template = 'otr_list.html'; break; case $url[$n] == 'archive' && count($url) == 2 || $url[$n - 1] == 'archive' && preg_match("/^page_([0-9]+)\$/", $url[$n]) && count($url) == 3: $page_found = true; $navigation[] = array("url" => "archive", "title" => "јрхив"); if (preg_match("/^page_([0-9]+)\$/", $url[$n])) { list(, $page) = explode("_", $url[$n]); $url = array_values($url);
$to = $check_user['id']; } if ($check) { $messages_count = $db->get_single("SELECT COUNT(*) AS count FROM fw_messages WHERE `to`='{$to}'"); if ($messages_count['count'] >= MAX_MESSAGES) { $db->query("DELETE FROM fw_messages WHERE `to`='{$to}' ORDER BY publish_date LIMIT 1"); } $db->query("INSERT INTO fw_messages(`from`,`to`,`subject`,`text`,`publish_date`) VALUES('{$from}','{$to}','{$subject}','{$text}','" . time() . "')"); if ($check_user['mail'] != '') { $smarty->assign("site_url", BASE_URL); $smarty->assign("answer_url", BASE_URL . '/users/messages/new/?to=' . $from); $smarty->assign("cabinet_url", BASE_URL . '/cabinet/'); $smarty->assign("author", $_SESSION['fw_user']['name']); $smarty->assign("message", $text); $message_body = $smarty->fetch($templates_path . '/new_message_notification.txt'); Mail::send_mail($check_user['mail'], ADMIN_MAIL, "Новое личное сообщение на сайте " . BASE_URL, $message_body, "", "text", "standard", "windows-1251"); } $smarty->assign("message", "Сообщение отправлено"); } } if (count($url) == 4 && $url[$n - 2] == 'messages' && $url[$n - 1] == 'delete') { $page_found = true; $id = $url[$n]; $db->query("DELETE FROM fw_messages WHERE id='{$id}' AND (`to`='" . $_SESSION['fw_user']['id'] . "' OR `from`='" . $_SESSION['fw_user']['id'] . "')"); $location = $_SERVER['HTTP_REFERER']; header("Location: {$location}"); } if (isset($_POST['submit_edit_albums'])) { $sort_order = $_POST['sort_order']; foreach ($sort_order as $k => $v) { if (preg_match("/^[0-9]*\$/", String::secure_user_input($v))) {
$smarty->assign("delivery", $delivery); $smarty->assign("user", $user); $smarty->assign("phone", $phone); $smarty->assign("address", $address); $smarty->assign("comment", $comment); $smarty->assign("email", $email); $smarty->assign("currency", DEFAULT_CURRENCY); if ($orderPromo) { $shop->setUserDataByPromo($code, preg_replace("/\\D/", "", $phone), $email, $order_id); } if (!empty($email)) { $body = $smarty->fetch($templates_path . '/order_notice.txt'); Mail::send_mail($email, MAIL_FROM, "Новый заказ в интернет магазине", $body, '', 'html', 'standard', 'Windows-1251'); } $admin_body = $smarty->fetch($templates_path . '/admin_order_notice.txt'); Mail::send_mail(SEND_ORDER_TO, MAIL_FROM, "Новый заказ в интернет магазине", $admin_body, $attach, 'html', 'standard', 'WIndows-1251'); header("Location: /catalog/basket/final/"); die; } } else { header("Location: " . BASE_URL); } break; case count($url) == 2 && preg_match("/\\?search_product=(.*)\$/", $url[$n]) or count($url) == 2 && preg_match("/\\?search_product=(.+)&page=([1-9]+)\$/", $url[$n]): $navigation[] = array("url" => 'search', "title" => 'Поиск'); $search = filter_var(trim($_GET['search_product']), FILTER_SANITIZE_STRING); $search = urldecode($search); $current_url_pages[$n] = eregi_replace("&page=([1-9]+)", "", $current_url_pages[$n]); if (isset($_GET['page']) && $_GET['page'] != '') { $page = $_GET['page']; } else {
if (isset($_POST['element'])) { foreach ($_POST['submit_form_id'] as $key => $value) { $form = $db->get_single("SELECT * FROM fw_forms WHERE id='" . $key . "' AND status='1'"); if ($form['email'] != '') { $elements = $db->get_all("SELECT * FROM fw_forms_elements WHERE parent='" . $key . "' AND status='1' ORDER BY sort_order"); $values_array = array(); foreach ($_POST['element'][$key] as $k1 => $v1) { $values_array[$k1] = $v1; } foreach ($elements as $k => $v) { if (substr($v['name'], 0, 1) == "*" && substr($v['name'], -1) == "*") { $elements[$k]['name'] = substr($v['name'], 1, -1); } if ($v['type'] == 0) { $elements[$k]['value'] = ""; } else { $elements[$k]['value'] = nl2br($values_array[$v['id']]); } } $smarty->assign("form", $form); $smarty->assign("elements", $elements); $body = $smarty->fetch(BASE_PATH . '/modules/forms/templates/mail.txt'); if (Mail::send_mail($form['email'], ADMIN_MAIL, "Заполнена форма на сайте", $body, '', 'html', 'standard', 'Windows-1251')) { $smarty->assign("result_text", "Форма успешно отправлена. Спасибо."); } else { $smarty->assign("result_text", "Произошла ошибка при отправлении формы. Повторите, пожалуйста, ввод."); } } } } }
//Дергаем функцию для проверки на ошибки и присваиваем массив $err $err = err($_POST); #Если ошибки отсутствуют обращаемся к бд if (!count($err)) { #Проверяем имеется ли данный логин в базе $login = q("\n SELECT *\n FROM `users`\n WHERE `login` = '" . ms($_POST['login']) . "'\n LIMIT 1\n "); if (mysqli_num_rows($login)) { $err['login'] = '******'; } #Проверяем имеется ли данное мыло в базе $email = q("\n SELECT *\n FROM `users`\n WHERE `email` = '" . ms($_POST['email']) . "'\n LIMIT 1\n "); if (mysqli_num_rows($email)) { $err['email'] = 'Пользователь с таким email уже существует'; } } #Если нету ошибок if (!count($err)) { #Экранируем массив $_POST $_POST = ms($_POST); #Если нету вносим нового пользователя q("\n INSERT\n INTO `users`\n SET\n `login` = '" . $_POST['login'] . "',\n `password` = '" . myHash($_POST['password']) . "',\n `email` = '" . $_POST['email'] . "',\n `age` = '" . $_POST['age'] . "',\n `hash` = '" . myHash(md5($_POST['login'] . $_POST['email'])) . "',\n `registration_date` = NOW()\n "); #Формируем и отправляем активационное письмо на указанный ранее адрес Mail::$to = $_POST['email']; Mail::$subject = 'Подтвердите регистрацию аккаунта на сайте' . Core::$DOMAIN; Mail::$message = 'Для подтверждения регистрации перейдите по ссылке ' . Core::$DOMAIN . 'index.php?module=cab&page=active&code=' . myHash(md5($_POST['login'] . $_POST['email'])); Mail::send_mail(); $_SESSION['regok'] = 'OK'; header("Location: index.php?module=cab&page=reg"); exit; } }
$smarty_tmp['text'] = $_POST['np_text']; $smarty->assign("tmp", $smarty_tmp); $check = false; } if ($check) { $parent = String::secure_user_input($_POST['thread_id']); $get_subscribers = $db->get_all("SELECT * FROM fw_send_forum_answers WHERE thread_id='{$parent}'"); //Common::dumper($get_subscribers,1); if (count($get_subscribers) > 0) { $smarty->assign("site_url", BASE_URL); $smarty->assign("message", $thread['message']); $smarty->assign("reply", $_POST['np_text']); $smarty->assign("thread_url", $_SERVER['HTTP_REFERER']); $message = $smarty->fetch(BASE_PATH . '/modules/forum/front/templates/send_answer.txt'); foreach ($get_subscribers as $k => $v) { Mail::send_mail($v['mail'], ADMIN_MAIL, 'Новое сообщение в форуме', $message, '', 'text', 'standard', 'Windows-1251'); } } $text = strip_forum_tags($_POST['np_text']); if (FORUM_PREMODERATION == 'on') { $set_status = '1'; } else { $set_status = '1'; } $db->query("INSERT INTO fw_forum_posts(parent,author,text,publish_date,status) VALUES('{$parent}','{$author}','{$text}','" . time() . "','{$set_status}')"); $location = $_SERVER['HTTP_REFERER']; header("Location: {$location}"); } } //----------------------------- ОТОБРАЖЕНИЯ КОНТЕНТА ------------------------------- switch (TRUE) {
$smarty->assign("success_message", "На указанный вами адрес был выслан активационный код с дальнейшими инструкциями."); } else { $smarty->assign("success_message", "Адрес успешно добавлен в базу рассылки!"); } } if ($action == 'unsubscribe') { $check_subscriber = $db->get_single("SELECT mail,reg_date FROM fw_subscribe_list WHERE mail='{$mail}'"); if ($check_subscriber['mail'] == '') { $check = false; $smarty->assign("error_message", "Извините, этого адреса не существует."); } if ($check) { $smarty->assign("site_url", BASE_URL); $smarty->assign("activation_link", BASE_URL . '/' . $node_content['url'] . '/unsubscribe_confirm/' . $check_subscriber['reg_date']); $body = $smarty->fetch(BASE_PATH . '/modules/subscribe/submit_unsubscribe.txt'); @Mail::send_mail($check_subscriber['mail'], ADMIN_MAIL, 'Подтверждение отписки от рассылки', $body, '', 'html', 'standard', 'Windows-1251'); $smarty->assign("success_message", "На указанный адрес был выслан код подтверждения отписки от рассылки с дальнейшими инструкциями"); } } } $template = 'subscribe_main.html'; break; case $url[$n - 1] == 'subscribe_confirm' && preg_match("/^[0-9]*\$/", $url[$n]) && count($url) == 3: $page_found = true; $navigation[] = array("url" => 'subscribe_confirm', "title" => 'Подтверждение подписки'); $code = $url[$n]; $check_code = $db->get_single("SELECT id FROM fw_subscribe_list WHERE status='0' && reg_date='{$code}'"); if ($check_code['id'] == '') { $smarty->assign("message", "Извините, но ваш активационный код недействиетелен"); } else { $db->query("UPDATE fw_subscribe_list SET status='1' WHERE reg_date='{$code}'");
$text = $_POST['mail_text']; $subj = $_POST['mail_subj']; $type = $_POST['send_type']; $group_id = $_POST['send_to']; $template_id = $_POST['mail_template']; if ($group_id == '0') { $users_list = $db->get_all("SELECT mail FROM fw_subscribe_list WHERE status='1'"); } else { $users_list = $db->get_all("SELECT mail FROM fw_subscribe_list WHERE status='1' AND group_id='{$group_id}'"); } $mail_template = $db->get_single("SELECT template FROM fw_subscribe_templates WHERE id='{$template_id}'"); $smarty->assign("text", $text); $smarty->assign("mail_content", $mail_template['template']); $body = $smarty->fetch(BASE_PATH . '/modules/subscribe/template.txt'); foreach ($users_list as $k => $v) { Mail::send_mail($v['mail'], ADMIN_MAIL, $subj, $body, '', $type, SUBSCRIBE_TRANSPORT_METHOD, SUBSCRIBE_ENCODING); } } if ($action == "change_user_status" && isset($_GET['id'])) { $id = intval($_GET['id']); $db->query("UPDATE fw_subscribe_list SET status=IF(status='0','1','0') WHERE id='" . $id . "'"); $location = $_SERVER['HTTP_REFERER']; header("Location: {$location}"); die; } if ($action == 'delete_inactive_users') { $limit_date = time() - 604800; $db->query("DELETE FROM fw_subscribe_list WHERE reg_date<{$limit_date} AND status='0'"); $location = $_SERVER['HTTP_REFERER']; header("Location: {$location}"); }