простая админка на php
Как сделать админку для лендинга
Когда лендингу нужна админка
Рано или поздно возникает необходимость в правках на сайте: сменился телефон, адрес, цены. данные устарели и их необходимо актуализировать. Чтобы каждый раз не искать новых фрилансеров для правок, можно сделать за один раз необходимую административную панель: по логину и паролю вы входите в кабинет с настройками своего сайта и сможете сменить любые (заранее предопределенные) данные.
Уверен, многое владельцы лендингов мечтают о такой возможности, не обладая необходимыми знаниями в редактировании html кода, умением работать с файловым менеджером на хостинге или по FTP. Да и вебмастера, пожалуй, не раз слышали от своих клиентов о необходимости внедрения в лендинг административной панели! Многие автоматически, не заморачиваясь, сразу же предлагают прикрутить лендинг к какой-либо распространенной cms (Joomla или WordPress), хотя на практике, делов там на 10-15 минут! Как же создать лендинг с административной панелью (админкой)?
Делаем админку для лендинга
Авторизация и кабинет администратора
Для начала нам необходимо создать кабинет, в котором администратор сайта сможет авторизоваться. Для этого открываем новую папку на хостинге в корне сайта admin и в ней два файла pass.php и index.php. Содержимое файла pass.php будет выглядеть следующим образом (содержать ваш логин и пароль для авторизации):
Содержимое файла index.php, в котором будет осуществляться авторизация администратора:
Итак, после удачной авторизации, администратор увидит элемент textarea, с содержимым файла настроек «../config/config.ini» и возможностью их отредактировать. После внесения необходимых правок, он может выйти из кабинета, нажав на ссылку ВЫЙТИ.
Файл настроек
Создадим папку config в корне сайта и в ней два файла .htaccess и config.ini В .htaccess запретим внешний доступ к файлу config.ini, хотя это и необязательно, ведь в нем не будет секретных сведений:
И в файле настроек config.ini мы должны описать переменные, которые хотим изменять на сайте, для примера я приведу самые динамичные:
Переменные на сайте
Теперь в необходимых местах сайта, мы можем вывести значения переменных. Наши цены из файла настроек будут выглядеть так:
Вместо телефонов на сайте пишем:
Вместо адреса электронной почты
Вместо физического адреса:
Разумеется, в файл настроек вы можете прописать столько переменных, сколько необходимо изменять впоследствии. Слишком дотошные, могут перенести в переменные хоть и все текстовое содержимое лендинга. На практике же целесообразно в файл настроек вынести наиболее динамичные данные с сайта, те текстовые данные, которые рано или поздно придется менять.
Специализируюсь на безопасности сайтов: защищаю сайты от атак и взломов, занимаюсь лечением вирусов на сайтах и профилактикой.
Наверняка у Вас есть вопросы, просьбы или пожелания. Не стесняйтесь спросить, я отвечаю всегда быстро.
Как создать админку для сайта на PHP с нуля
Узнайте, для чего нужна панель управления сайтом, какие в ней есть функции и как её разработать самостоятельно.
Инструменты для управления сайтом:
Лучше всего собрать их в одном месте, которое и называется панелью управления сайтом.
Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Как создать админку для сайта на PHP
В первую очередь создадим файл admin.php в корне сайта. Пока у него будет такой вид:
Основные элементы для работы админки сайта
Дополнительные возможности управления сайтом относятся к разным направлениям PHP, которые невозможно охватить в одной статье. Подробнее обо всём на свете в мире PHP мы рассказываем на курсе «PHP-разработчик с нуля до PRO».
Теперь приступаем к написанию функций, запросов и валидаций.
Авторизация
Чтобы ограничить доступ, создадим форму входа в панель управления:
Соответствия в запросе ищутся только среди администраторов, но можно давать ограниченный доступ и для других групп пользователей — например, для модераторов, чтобы они проверяли комментарии и статьи, но не имели доступа к глобальным настройкам и удалению записей.
Главная страница
Теперь создадим условия, чтобы пользователь делал что-то полезное. Для этого методом GET передаётся название страницы:
На главной странице админки размещают все компоненты сайта с возможностью управления:
Должна быть возможность редактировать и общие настройки сайта: поменять метатеги, изменить параметры капчи, обновить политику конфиденциальности и так далее.
Редактирование
Как вы могли заметить, в таблицах каждая строчка — это ссылка такого вида:
В переменной act передаётся значение edit_article, а в id — идентификатор статьи. Перейдя по ссылке, администратор попадает на страницу редактирования:
Сначала в базу данных отправляется запрос на получение статьи. Затем, если всё в порядке, выводится форма редактирования. Если перед этим пользователь отправил изменённый текст, то он отправляется на сервер, таблица обновляется, а потом с помощью ещё одного запроса выводится актуальная информация.
Добавление записей в базу данных
Чтобы создать функцию добавления пользователя (или любого другого элемента на сайте), парсим форму и её обработчик:
Сначала проверяем, свободен ли указанный логин. Если да, то в базу вносятся соответствующие данные. Также обратите внимание, что существование переменной regadmin не проверяется, потому что форма её не отправляет, если оставить чекбокс пустым.
Статистика
Чтобы смотреть статистику посещений, комментирования и другой активности, создаём в базе данных таблицу с полями:
В них записывается общее количество просмотров и комментариев за каждый день, которое выводится на графике. Чтобы это сделать, пропишем HTML-код таблицы:
В качестве источника картинки указывается PHP-файл с кодом:
Сначала создаются изображение, рамка и деления. Затем идёт запрос в базу данных, чтобы получить статистику, которая отрисовывается в виде графика. Изображение сохраняется для разового вывода, а потом удаляется. Когда пользователь обратится к статистике в следующий раз, информация будет визуализирована заново.
Дополнительные возможности
То, о чём мы успели поговорить, — лишь часть того, что должно быть в админке.
Например, дополнительно можно реализовать:
Не менее важно научиться тщательно проверять приходящие данные и сделать аутентификацию снова великой безопасной. Если хотите освоить все направления PHP, запишитесь на курс от Skillbox. Вы получите необходимые знания и закрепите их на практике — научитесь самостоятельно разрабатывать даже самые сложные приложения, не списывая что-то в интернете.
Админка за 10 минут
Здравствуйте, уважаемое Хабрасообщество!
Я занимаюсь разработкой веб-сайтов. Как правило, это решения под индивидуальные потребности заказчиков. Поэтому я не использую готовые CMS, а предпочитаю складывать кирпичики самостоятельно. Конечно и админскую часть приходиться писать самостоятельно, поскольку она должна выполнять те функции, которые нужны заказчику, но и ничего лишнего не должно быть. И если написать несколько методов для редактирования данных это пол беды, то приходилось ещё и верстать приятный и удобный интерфейс.
Долгое время я использовал Twitter Bootstrap, но он не мог удовлетворить все потребности. Приходилось верстать дополнительные кнопочки и писать скрипты. Но вот однажды, я познакомился с замечательным UI-фреймворком KendoUI от Telerik. Что из этого получилось под катом.
О самом фреймворке уже писалась статья на Хабре. Мы будем использовать библиотеку Web-контролов KendoUI Web. Чтобы понимать, что можно создавать с её помощью можно посетить страничку с демо. Для построения контролов можно использовать как хелперы для ASP.NET, JSP или PHP, так и javascript-виджеты. Последние распространяются по лицензии GPL v3 License, поэтому я использовал именно их. Скачать тот или иной пакет можно здесь. На серверной стороне я использую ASP.NET MVC 4 с пакетом Microsoft ASP.NET Web API OData 4.0.0, уставить который можно с помощью команды PM> Install-Package Microsoft.AspNet.WebApi.OData
Для демонстрации создадим простой класс Article, и добавим ему три свойства разного типа
Далее создадим ApiController для работы с данными. В своем примере я использую Entity Framework, поэтому сразу указываю Scaffolding options
После этого я изменяю только действие GetArticles, так показано в примере ниже. Прежде всего теперь оно возвращает ODataResult. А в качестве параметра принимает ODataQueryOptions, это коллекция сериализованных параметров строки запроса. В самом действии мы получаем коллекцию и общее количество элементов в ней. А после применяем к ней входящие параметры. В результате мы возвращаем коллекцию после применение к ней параметров и общее количество, оно необходимо для пагинации.
Вот и все. Самое время переходить к клиентской части. Для начала подключим KendoUI и JQuery на страницу.
После этого установим и настроим виджет. Подробнее о настройках виджета можно прочитать здесь.
Готово! Теперь можно запускать и проверять. Менее чем за 10 минут мы создали полноценный интерфейс для управления данными, с возможностью пагинации, сортировки и фильтрации. Удобный и приятный. Спасибо KendoUI и формату OData, а Вам за внимание.
Р.S. Кстати есть возможность локализации виджетов. Для этого необходимо подключить соответствующий скрипт из папки js/cultures, который поставляется в архиве с фреймворком.
Админ-панель сайта
Что такое админ-панель
Админ-панель располагается на отдельной странице, которая имеет примерно такой адрес:
На сайте не делают ссылки на эту страницу, Вы просто должны знать её URL. Вход в админ-панель производится через форму авторизации. От обычной авторизации она отличается тем, что вы входите не как обычный пользователь, а как администратор, и информация об этом должна быть записана в сессию. Доступ к админ-панели должен быть только у администратора.
Авторизация администратора
Авторизацию администратора можно сделать двумя способами. Если администраторов несколько, то в таблицу с пользователями можно добавить поле, в котором указывать, что пользователь является администратором. А можно в скрипте авторизации просто передавать права администратора конкретному пользователю. Мы используем второй вариант. Назовём страницу авторизации avtadministrator.html. Вот её код:
Форма отправляет данные в файл adminavt.php. Это скрипт авторизации. Его код такой:
Создание админ-панели
Админ панель выглядит примерно так.
Перед добавлением статьи в базу данных нужно поместить текст статьи в теги
. Сделаем это на стороне клиента, чтобы не расходовать ресурсы сервера. Добавим на страницу скрипт, в котором перед текстом статьи поставим тег
. Чтобы сохранились все абзацы, нужно вместо перехода строки закрыть тег
и открыть новый. Вот код скрипта:
При желании можно добавить в обработчик проверку заполнения полей.
Форма запускает скрипт newart.php, который добавляет статью в базу данных. Вот код скрипта:
Мы рассмотрели создание самой простой админ-панели. Чтобы ею было удобно пользоваться в неё желательно добавить определённые возможности:
На основе данного примера Вы сможете сделать любую админ-панель для Вашего сайта.
Коприрование материалов сайта возможно только с согласия администрации
Админка на php для mysql
Админка позволяет делать копии и вставки таблиц базы данных mysql, печатать и портировать sql-запросы
Область применения
Практически любому разработчику web-приложений приходится переодически вносить изменения в базу данных, выполнять специфический поиск или обновление записей, предварительно сделав резервные копии таблиц. Если вы арендуете хостинг, то наиболее удобным способом работать с базой данных удаленно будет через web-интерфейс. Хотя админок для работы с базами данных на php существует довольно много, я решил сделать собственный, понятный и простой проект без лишних опций ориентируясь только на собственный опыт что нужно для web-разработчика.
Поддерживаемые модули
В связи с переводом моего сайта на php v7.2 админка была обнолена и теперь работает с аналогичной версией. Были устранены некоторые недочеты и изменена инструкция по настройке.
Установка
Скачать проект можно по ссылке https://github.com/rightJoint/simple-php-mysql-admin или клонировав репозиторий с помощью git.
git clone https://github.com/rightJoint/simple-php-mysql-admin sa.local
RewriteEngine on
RewriteBase /
Конфигурация:
Файл с именами и зашифрованными паролями пользователей админки должен располагаться по пути: /source/_conf/admin/adminUsers.php По умолчанию логин admin и пароль root, пример файла:
Файл с настройками для подключения к серверу и базе данных должен размещаться по пути /source/_conf/db_conn.php и иметь следующий вид:
Работа с админкой
После авторизации по адресу /admin вам будет доступен интерфейс админки, настройте подключения к вашему sql-серверу и базе данных с помощью интерфейса или изменив конфигурационный файл db_conn.php
Интерфейс и назначение каждого модуля админки понятны и описывать их не имеет смысла. Задайте настройки как в примере выше в модуле админки ‘Сервер’, после перейдите в модуль ‘SQL’ и выполните запрос на создание базы данных. Далее в настройках сервера укажите вашу базу данных в «CONN_DB». После успешного подключения к базе данных можно перейти к созданию таблиц.
Логин и пароль для OpenServer различных версий могут различатся, CONN_DB должно быть пустым для создания БД
CREATE DATABASE my_db CHARACTER SET utf8 COLLATE utf8_general_ci
Работа с таблицами
Удалять, очищать, копировать и вставлять таблицы можно с помощью модуля admin/tables Для создания таблиц или портируйте запрос в базу данных или используйте готовые скрыпты, которые в этом примере расположены по пути /data/db/tablesList