<MyRusakov.ru />

Программирование на C++ с Нуля до Гуру

Программирование на C++ с Нуля до Гуру

Данный курс научит Вас программировать на языке C++, который, несмотря на свой почтенный возраст, необычайно сильно востребован. Курс состоит из 6 разделов, посмотрев которые и выполнив все упражнения, Вы с нуля освоите этот язык и сможете создавать самые разные проекты любой сложности на C++.

Для закрепления материала из уроков к ним идёт множество упражнений.

Дополнительно к курсу идёт вспомогательная система, которая не даст Вам забросить начатое на полпути.

Также вместе с курсов Вы получаете Бонус "Программирование на C++ в Unreal Engine", в котором Вы научитесь создавать игры на C++ с использованием этого движка.

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

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

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

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

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

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

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

Зачем Вы изучаете программирование/создание сайтов?

Как добавить новость на сайт c помощью PHP. Часть 1

Как добавить новость на сайт c помощью PHP. Часть 1

Доброго времени суток! В данном цикле статей мы рассмотри с Вами, как можно реализовать простую систему с помощью которой можно будет добавлять новости на сайт. Реализована она будет на PHP.

Итак, для начала рассмотрим структуру нашего проекта:

.
├── css
│   ├── bootstrap.min.css
│   └── style.css
├── images
│   └── php-add-news-on-site.jpg
├── models
│   └── news_model.php
├── templates
│   ├── form.phtml
│   └── index.phtml
├── config.php
├── core.php
├── index.php
├── news.php
└── news_table.sql

Рассмотрим по отдельности каждую папку.

  • css - как нетрудно догадаться папка со css-стилями. В примере используется Bootstrap 5
  • image - папка для разных изображений
  • models - папка моделей для работы с базой
  • templates - html-шаблоны
  • config.php - настройки доступа к базе данных и другие настройки
  • core.php - несколько базовых функций
  • index.php - выводит список последних новостей
  • news.php - добавляет новость в базу
  • news_table.sql - SQL-скрипт для создания таблицы новостей

Теперь рассмотрим подробнее SQL-скрипт и HTML-шаблоны.


create table news
(
    id int auto_increment,
    title varchar(512) not null,
    content text not null,
    created_at datetime default now() null,
    constraint news_pk
        primary key (id)
);

В данном примере новость имеет заголовок (text) и содержимое (content), а также дату добавления (created_at). Это минимально необходимые данные.

Теперь рассмотрим HTML-шаблоны, которые выводят данные новости и предоставляют интерфейс для их добавления в базу.

index.phtml - вывод списка новостей


<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Последние новости</title>

    <link rel="stylesheet" href="css/style.css" />
</head>
<body>
    <div class="container py-4 px-3">
        <div class="container">
            <h2 class="mb-3">Последние новости</h2>
            <a class="btn btn-sm btn-warning my-3" href="news.php">Добавить новость</a>
            <div class="row row-cols-1 row-cols-md-2 g-4">
                <?php foreach($news as $post): ?>
                <div class="col">
                    <div class="card h-100">
                        <!--<img src="..." class="card-img-top" alt="...">-->
                        <div class="card-body">
                            <h5 class="card-title"><?php print $post['title'] ?></h5>
                            <p class="card-text"><?php print $post['content'] ?></div>
                        <div class="card-footer">
                            <small class="text-muted"><?php print $post['created_at'] ?></small>
                        </div>
                    </div>
                </div>
                <?php endforeach ?>
            </div>
        </div>

    </div>
</body>
</html>


form.phtml - форма добавления новости


<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Форма для добавления новости</title>

    <link rel="stylesheet" href="../css/style.css">
</head>
<body>
    <div class="container py-4">
        <?php if($message): ?>
        <div class="alert alert-info">
            <?php print $message ?>
        </div>
        <?php endif ?>
        <?php if($errors): ?>
            <div class="alert alert-danger">
                <ul>
                <?php foreach ($errors as $error): ?>
                <li><?php print $error ?></li>
                <?php endforeach ?>
                </ul>
            </div>
        <?php endif ?>

        <nav aria-label="breadcrumb">
            <ol class="breadcrumb">
                <li class="breadcrumb-item"><a href="/">Все новости</a></li>
                <li class="breadcrumb-item active" aria-current="page">Добавить новость</li>
            </ol>
        </nav>

        <form action="../news.php" method="post">
            <h3 class="pb-3">Добавить новость</h3>
            <div class="mb-3">
                <label for="newsTitle" class="form-label">Заголовок</label>
                <input type="text" class="form-control" id="newsTitle" name="title" value="Простая новость" placeholder="...">
            </div>
            <div class="mb-3">
                <label for="newsText" class="form-label">Текст</label>
                <textarea class="form-control" id="newsText" rows="3" name="content" placeholder="...">Просто контент</textarea>
            </div>
            <div class="mb-3">
                <input type="submit" value="Добавить" class="btn btn-success" name="news_add" />
            </div>
        </form>
    </div>
</body>
</html>

Таким образом, в данной статье мы рассмотрели с Вами структуру проекта и содержимое некоторых файлов. В следующей статье рассмотрим подробно код приложения.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.