<MyRusakov.ru />

Программирование на C++ в Unreal Engine 5

Программирование на C++ в Unreal Engine 5

Данный курс научит Вас созданию игр на C++ в Unreal Engine 5. Курс состоит из 12 разделов, в которых Вас ждёт теория и практика. Причём, в качестве практики будет создан весьма крупный проект объёмом свыше 5000 строк качественного кода, который уже на практике познакомит Вас с принципами создания игр на C++ в Unreal Engine 5.

Параллельно с курсом Вы также будете получать домашние задания, результатом которых станет, в том числе, полноценная серьёзная работа для портфолио.

Помимо самого курса Вас ждёт ещё и очень ценный Бонус: «Тестирование Unreal-проектов на Python», в рамках которого Вы научитесь писать очень полезные тесты для тестирования самых разных аспектов разработки игр.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Форум сайта MyRusakov.ru

Помогите
13.12.2015 15:13:23 Помогите Сообщение #1
Алмазбек

Алмазбек

Новичок

Новичок

Дата регистрации:
10.12.2013 19:43:23

Сообщений: 3

Помогите пожалуйста

Notice: Undefined index: view in Z:\home\LifeNet.kg\www\index.php on line 11
http://lifenet.kg/#
Warning: session_start() [http://lifenet.kg/function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\LifeNet.kg\www\index.php:11) in Z:\home\LifeNet.kg\www\lib\modules_class.php on line 22

Warning: session_start() [http://lifenet.kg/function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\LifeNet.kg\www\index.php:11) in Z:\home\LifeNet.kg\www\lib\modules_class.php on line 22

Notice: Use of undefined constant up - assumed 'up' in Z:\home\LifeNet.kg\www\lib\database_class.php on line 32

Notice: Undefined variable: text in Z:\home\LifeNet.kg\www\lib\modules_class.php on line 56

Notice: Undefined variable: text in Z:\home\LifeNet.kg\www\lib\modules_class.php on line 70


Database_class.php

<?php
require_once "config_class.php";
require_once "checkvalid_class.php";

class DataBase {
    
    private $config;
    private $mysqli;
    private $valid;
    
    public function __construct() {
        $this->config = new Config();
        $this->valid = new CheckValid();
        $this->mysqli = new mysqli($this->config->host, $this->config->user, $this->config->password, $this->config->db);
        $this->mysqli->query("SET NAMES 'utf8'";
    }
     private function query($query) {
         return $this->mysqli->query($query);
     }
    
     private function select($table_name, $fields, $where = "", $order ="", $up = true, $limit ="" {
         for ($i = 0; $i < count($fields); $i++) {
         if ((strpos($fields[$i], "(" === false) && ($fields[$i] != "*") $fields[$i] = "`".$fields[$i]. "`";
         }
        
         $fields = implode(",", $fields);
         $table_name = $this->config->db_prefix.$table_name;
         if (!$order) $order = "ORDER BY `id`";
         else {
             if ($order != "RAND()" {
                 $order = "ORDER BY `$order`";
                 if (!up) $order .= " DESC";
             }
        
             else $order = "ORDER BY $order";
         }
         if ($limit) $limit = "LIMIT $limit";
         if ($where) $query = "SELECT $fields FROM $table_name WHERE $where $order $limit";
         else $query = "SELECT $fields FROM $table_name $order $limit";
         $result_set = $this->query($query);
         if (!$result_set) return false;
         $i = 0;
         while ($row = $result_set->fetch_assoc()) {
             $data[$i] = $row;
             $i++;
         }
         $result_set->close();
         return $data;
     }

     public function insert($table_name, $new_values) {
         $table_name = $this->config->db_prefix.$table_name;
         $query = "INSERT INTO $table_name (";
         foreach ($new_values as $field => $value) $query .= "`".$field."`,";
         $query = substr($query, 0, -1);
         $query .= " VALUES (";
         foreach ($new_values as $value) $query .= "'".addslashes($value)."',";
         $query = substr($query, 0, -1);
         $query .= "";
         return $this->query($query);
     }
    
     private function update($table_name, $upd_fields, $where) {
         $table_name = $this->config->db_prefix.$table_name;
         $query = "UPDATE $table_name SET ";
         foreach ($upd_fields as $field => $value) $query .= "`$field` = '".addcslashes($value)."',";
         $query = substr($query, 0, -1);
         if ($where) {
             $query .= " WHERE $where";
             return $this->query($query);
         }
         else return false;
     }
    
     public function delete($table_name, $where = "" {
         $table_name = $this->config->db_prefix.$table_name;
         if ($where) {
             $query = "DELETE FROM $table_name WHERE $where";
             return $this->query($query);
         }
         else return false;
     }
    
     public function deleteAll($table_name) {
          $table_name = $this->config->db_prefix.$table_name;
          $query = "TRUNCATE TABLE `$table_name`";
          return $this->query($query);
     }
    
     public function getField($table_name, $field_out, $field_in, $value_in) {
         $data = $this ->select($table_name, array($field_out), "`$field_in`='".addslashes($value_in)."'";
         if (count($data) != 1) return false;
         return $data[0][$field_out];
     }
    
     public function getFieldOnID($table_name, $id, $field_out) {
         if (!$this->existsID($table_name, $id)) return false;
         return $this->getfield($table_name, $field_out, "id", $id);
     }
    
     public function getAll($table_name, $order, $up) {
         return $this->select($table_name, array("*", "", $order, $up);
     }
    
     public function getAllOnField($table_name, $field, $value, $order, $up) {
         return $this->select($table_name, array("*", "`$field`='".addslashes($value)."'", $oreder, $up);
     }
    
     public function getLastID($table_name) {
         $data = $this->select(table_name, array("MAX(`id`)");
         return $data[0]["MAX(`id`)"];
     }
    
     public function deleteOnID($table_name, $id) {
         if (!$this->existsID($table_name, $id)) return false;
         return $this->delete($table_name, "`id` = '$id'";
     }
    
    
     public function setField($table_name, $field, $value, $field_in, $value_in) {
         return $this->update($table_name, array($field => $value), "`field_in` = '".addslashes($value_in)."'";
     }
    
     public function setFieldOnID($table_name, $id, $field, $value) {
         if (!$this->existsID($table_name, $id)) return false;
         return $this->setField($table, $field, $value, "id", $id);
     }
    
     public function getElementOnID($table_name, $id) {
         if (!$this->existsID($table_name, $id)) return false;
         $arr = $this->select($table_name, array("*", "`id` = '$id'";
         return $arr[0];
     }
    
     public function getRandomElements($table_name, $count) {
         return $this->select($table_name, array("*", "", "RAND()", true, $count);
     }
    
     public function getCount($table_name) {
         $data = $this->select($table_name, array("COUNT(`id`)");
         return $data[0]["COUNT(`id`)"];
     }
    
     public function isExists($table_name, $field, $value) {
        $data = $this->select($table_name, array("id", "`$field` = '".addslashes($value)."'";
        if (count($data) === 0) return false;
        return true;
     }
    
     private function existsID($table_name, $id) {
         if (!$this->valid->validID($id)) return false;
         $data= $this->select($table_name, array("id", "`id`='".addslashes($id)."'";
         if (count($data) === 0) return false;
         return true;
     }
    
     public function __destruct() {
         if ($this->mysqli) $this->mysqli->close();
     }
}

?>


modules_class.php


<?php
    require_once "config_class.php";
    require_once "article_class.php";
    require_once "section_class.php";
    require_once "user_class.php";
    require_once "banner_class.php";
    require_once "message_class.php";
    require_once "menu_class.php";
    
abstract class Modules {
    
    protected $config;
    protected $article;
    protected $section;
    protected $user;
    protected $menu;
    protected $banner;
    protected $message;
    protected $data;
    
    public function __construct($db) {
        session_start();
        $this->config = new Config();
        $this->article = new Article($db);
        $this->section = new Section($db);
        $this->user = new User($db);
        $this->menu = new Menu($db);
        $this->banner = new Banner($db);
        $this->message = new Message();
        $this->data = $this->secureData($_GET);
    }
    
    public function getContent() {
        $sr["title"] = $this->getTitle();
        $sr["meta_desc"] = $this->getDescription();
        $sr["meta_key"] = $this->getKeyWords();
        $sr["menu"] = $this->getMenu();
        $sr["auth_user"] = $this->getAuthUser();
        $sr["banners"] = $this->getBanners();
        $sr["top"] = $this->getTop();
        $sr["middle"] = $this->getMiddle();
        $sr["bottom"] = $this->getBottom();
        return $this->getReplaceTemplate($sr, "main";
    }
    
    abstract protected function getTitle();
    abstract protected function getDescription();
    abstract protected function getKeyWords();
    abstract protected function getMiddle();
    
    protected function getMenu() {
        $menu = $this->menu->getAll();
        for ($i = 0; $i < count($menu); $i++) {
            $sr["title"] = $menu[$i]["title"];
            $sr["link"] = $menu[$i]["link"];
            $text .= $this->getReplaceTemplate($sr, "menu_item";
        }
        return $text;
    }
    
    protected function getAuthUser() {
        $sr["message_auth"] = "";
        return $this->getReplaceTemplate($sr, "form_auth";
    }
    
    protected function getBanners() {
        $banners = $this->banner->getAll();
        for ($i = 0; $i < count($banners); $i++) {
           $sr["code"] = $banners[$i]["code"];
           $text .= $this->getReplaceTemplate($sr, "banner";
        }
        return $text;
    }
    
    protected function getTop() {
        return "";
    }
    
    protected function getBottom() {
        return "";
    }
    
    private function secureData($data) {
        foreach($data as $key => $value) {
            if (is_array($value)) $this->secureData($value);
            else $data[$key] = htmlspecialchars($value);
        }
        return $data;
    }
    
    protected function getBlogArticles($articles, $page) {
        $start = ($page - 1) * $this->config->count_blog;
        $end = (count($articles) > $start + $this->config->count_blog)? $start + $this->config->count_blog: count($articles);
        for ($i = $start; $i < $end; $i++) {
            $sr["title"] = $articles[$i]["title"];
            $sr["intro_text"] = $articles[$i]["intro_text"];
            $sr["date"] = $this->formatDate($articles[$i]["date"]);
            $sr["link_article"] = $this->config->address."?view=article&;id=".$articles[$i]["id"];
            $text .= $this->getReplaceTemplate($sr, "article_intro";
        }
        return $text;
    }
    
    protected function formatDate($time) {
        return date("Y-m-d H:i:s", $time);
    }
    
    protected function getTemplate($name) {
        $text = file_get_contents($this->config->dir_tmpl.$name.".tpl";
        return str_replace("%address%", $this->config->address, $text);
    }
    
    protected function getReplaceTemplate($sr, $template) {
        return $this->getReplaceContent($sr, $this->getTemplate($template));
        
    }
    
    private function getReplaceContent($sr, $content) {
        $search = array();
        $replace = array();
        $i = 0;
        foreach ($sr as $key => $value) {
            $search[$i] = "%$key";
            $replace[$i] = $value;
            $i++;
        }
        return str_replace($search, $replace, $content);
    }
}
?>


global_class.php



<?php
require_once "config_class.php";
require_once "checkvalid_class.php";
require_once "database_class.php";

abstract class GlobalClass {
    
    private $db;
    private $table_name;
    protected $config;
    protected $valid;
    
    protected function __construct ($table_name, $db) {
        $this->db = $db;
        $this->table_name = $table_name;
        $this->config = new Config();
        $this->valid = new CheckValid();
        }
    
    protected function add($new_values) {
        return $this->db->insert($this->table_name, $new_values);
    }
    
    protected function edit($id, $upd_fields) {
        return $this->db->updateOnID($this->table_name, $id, $upd_fields);
    }
    
    public function delete($id) {
        return $this->db->deleteOnID($this->table_name, $id);
    }
    
    Public function deleteAll() {
        return $this->db->deleteAll($this->table_name);
    }
    
    protected function getField($field_out, $field_in, $value_in) {
        return $this->db->getField($this->table_name, $field_out, $field_in, $value_in);
    }
    
    protected function getFieldOnID($id, $field) {
        return $this->db->getFieldOnID($this->table_name, $id, $field);
    }
    
    protected function setFieldOnID($id, $field, $value) {
        return $this->db->setFieldOnID($this->table_name, $id, $field, $value);
    }
    
    public function get($id) {
        return $this->db->getElementlOnID($this->table_name, $id);
    }
    
    public function getAll($order = "", $up = true) {
        return $this->db->getAll($this->table_name, $order, $up);
    }
    
    protected function getAllOnField($field, $value, $order = "", $up = true) {
        return $this->db->getAllOnField($this->table_name, $field, $value, $order, $up);
    }
    
    public function getRandomElement($count) {
        return $this->db->getRandomElements($this->table_name, $count);
    }
    
    public function getLastID() {
        return $this->db->getLastId($this->table_name);
    }
    
    Public function getCount() {
        return $this->db->getCount($this->table_name);
    }
    
    protected function isExists($field, $value) {
        return $this->db->isExists($this->table_name, $field, $value);
    }
}
?>

index.php



<?php
    
    ini_set('display_errors',1);
error_reporting(E_ALL);
    mb_internal_encoding("UTF-8";
    require_once "lib/database_class.php";
    require_once "lib/frontpagecontent_class.php";
    
    
    $db = new Database();
    $view = $_GET["view"];
    switch ($view) {
        case "":
              $content = new FrontPageContent($db);
            break;
        default: exit;
    }
    
    echo $content->getContent();
?>
Профиль
13.12.2015 17:30:57 Помогите Сообщение #2
Razmik

Razmik

Освоившийся

Освоившийся

Дата регистрации:
30.09.2013 19:12:52

Сообщений: 23

Сессию нужно начинать в начале, после <?php , а вот записывать можно и позже
Профиль
17.12.2015 15:57:57 Помогите Сообщение #3
Алмазбек

Алмазбек

Новичок

Новичок

Дата регистрации:
10.12.2013 19:43:23

Сообщений: 3

А на каком файле
Профиль
19.12.2015 11:16:14 Помогите Сообщение #4
Razmik

Razmik

Освоившийся

Освоившийся

Дата регистрации:
30.09.2013 19:12:52

Сообщений: 23

В любом, где используешь сессии
Профиль