Админ-панель. С чего начать?
Знания PHP пока на довольно низком уровне, и скажу сразу (чтобы никто не возмущался) — готового на блюдечке не требую. Прошу «указать» в каком направлении преимущественно двигаться в обучении чтобы быстрее подойти к написанию админки. Ссылки, литература. Пока моё жалкое «начало» админки лишь форма для логина/пароля на отдельной странице.
- Вопрос задан более трёх лет назад
- 19503 просмотра
2 комментария
Оценить 2 комментария
Начните по примерам каких либо простых приложений, посмотрите как там сделано. что непонятно — можете спрашивать (в почту)
А вообще после авторизации в админке это главное описать CRUD (CREATE READ UPDATE DELETE) это стандартыне операции. Самое простое создайте в базе данных таблицу статьи(с полями id, title, descrition). Теперь главное в админке это сделать форму, в которую ты забиваешь текст заголовок новой статьи и ее описание. Нажимая на кнопку «Создать», эта статья должна добавляться в базу данных. Следующий шаг это сделать страницу куда выводится список всех статей. У выведенной каждой статьи прикрути две ссылки: 1-я изменить, вторая — удалить. Т.е при нажатии у определенной статьи кнопки изменить, ты переходишь на уже заполненную форму для редактирования (везде работа с базой данных). После редактирования статья также должна сохраняться(точнее обновляться). Ну а удалить это само понятно. Почитай статьи и курсы, которые я скинул. Там найдешь практически все ответы.
Решения вопроса 2
На самом деле Админ панель это ограниченная часть сайта, вход в которую может осуществлять только, например, админ. Остальным пользователям запрещено. Если говорить про php и mysql, то мы заходим в меню входа в админку( обыно это форма с двумя полями логин и пароль), после обрабатывает форму, т. е ищем в базе данных пользователя с таким же логином и паролем, если есть, то мы должны дать сайту понять, что теперь этот пользователь может заходить в админку. Для этого можно создать сессию с определенным именем,а лучше в сессию записать случайную строку и в базу данных ее же записать. И каждый раз проверять есть ли в базе сессия с такой же строкой как и в базе, если есть то это админ. Вообще если ты на начальном уровне, то почитай статьи вот этого парня lifeexample.ru/php-primeryi-skriptov/pishem-intern. Там он делает интернет магазин. А еще есть курс от сайта webformyself «корпоративный сайт под ключ», можно его найти, скажем так, если постараться) Там вообще строится на ооп. Также хороший курс для понимания это курс geekbrains php. А после можно изучить фреймворк laravel, он простой на осовение и после еще и еще расти))
Ответ написан более трёх лет назад
Нравится 2 4 комментария
вы описали не админ панель, а простую систему авторизации.
Николай: А что еще нужно? Ведь дальше обычная работа с базами данных и вывод информации на экран.

ssrdop: что ещё нужно? Вы серьёзно?
По вашему нет разницы между админ-панелью и, скажем, новостной страничкой? (та же обычная работа с бд и вывод информации на экран)
Николай: Я имел ввиду набор в админке хотя бы операций CRUD. Остально вообще по желанию.
Админка чего? Админка зачем?
Написание админки вообще ничем не отличается от написание остального приложения. Так что изучайте общую литературу.
Ответ написан более трёх лет назад

Александр @PUNK_199 Автор вопроса
Для добавления/удаления постов, и возможностью добавления изображений в альбомы сайта. Больше ничего. Без наворотов ВордПресовских, там конечно всё довольно неплохо с виду, но мне до этого далеко.
Александр: ну так это обычные операции. Вам надо знать HTML формы, работу с БД, работу с файловой системой.
Silm: Вот из за таких как Вы люди и боятся писать на подобные сайты. Можно подумать Вы сразу все знали. «Так что изучайте общую литературу.» — ну и написали бы какую, я что то не встречал в общей литературе, как строить админку. В основном чистый php. Конечно Вы можете мне ответить, что умный человек и с одним знанием php напишет, что нужно, но тогда почему все читают в обязательном порядке паттерны проектирования и прочее. Так что либо конкретно человеку помогите или вообще не высказывайте свое мнение. Оно никому не будет интересно.

Александр @PUNK_199 Автор вопроса
Silm: это уже точнее, спасибо, буду в БД углубляться.

Александр @PUNK_199 Автор вопроса
ssrdop: согласен, даже думал, стоит ли спрашивать, потому что видел ответы на другие вопросы. Но в общем, если сложить ответы, в сумме мне в принципе дали много полезного, сейчас сижу, пытаюсь понять.
PS
про админку подробно в сети тоже ничего толком не нашёл, всё кусками, и мне сложно сложить воедино всё прочитанное, ведь каждый по своему объясняет.
ssrdop: в своем ответе я привел сайт с лучшими практиками и литературой. В комментарии написал какие конкретно области надо изучить. В чем проблема?
Нет смысла браться писать админку, если банально не прочитал мануал по PHP. Если прочитал, то уже знаешь как работать с формами, как с БД, как с файлами. Что еще то нужно знать для админки? Это ведь самые примитивные вещи, разве нет?
> «конкретно человеку помогите»
насколько конкретным был вопрос, настолько конкретно я ответил. В админке нет никаких «особых» операций, все стандартно. Если у человека возник такой вопрос, значит ему стоит изучить то, что я указал.
> «. не высказывайте свое мнение.»
Приведите, где я высказал свое мнение?
Александр:
> «про админку подробно в сети тоже ничего толком не нашёл»
ну вот если вы с просите что именно вам не ясно и что вы пытались найти, то вам скорее помогут. Как я уже 3 раза сказал, никаких особых отличий от остального приложения в админке нет. Ну да, она закрыта от публичного просмотра, а в остальном там происходят самые банальные операции.
Silm: «Приведите, где я высказал свое мнение?» — я отвечу так же, как и Вы ответили: Перечитайте весь диалог, чтобы понять, что я имел ввиду. А если Вам непонятно, значит, надо читать психологию человека и другие материалы, а уже потом спрашивать. Вам такое ответ нравится? Я думаю нет. Вы тоже от меня конкретики не получили.
ssrdop: > что то не встречал в общей литературе, как строить админку
И не найдете. Что за бред? Чем админка отличается от всего остального oO?
ssrdop: такой ответ на риторический вопрос мне очень нравится и я даже кое что получил весьма конкретное про вас из него. Если бы не он, то я бы продолжал недоумевать чем же вам не понравился мой ответ в контексте следующих фактов:
Ваше сообщение «А что еще нужно? Ведь дальше обычная работа с базами данных и вывод информации на экран. «
При том что у ТС не было вопросов по теме аутентификации и даже было уточнение, что его в первую очередь интересует следующее:
«добавления/удаления постов, и возможностью добавления изображений в альбомы сайта. Больше ничего.»
entermix: А у Вас в голову не приходило, что человек хоть может и понимать общие концепции, но в некоторых местах, где фактически тоже самое с некоторыми незначительными модификциями, человек может не понять как решать. Это как учителя в школе, им главное, чтобы ученики услышали тему, а тот кто чего-то недопонял преподавателей не волнует. Если бы Ваш сын также пришел к Вам и сказал, мол, Папа, тут вроде тоже самое, но я не могу понять, Вы бы так и ответили , мол, Сын, чего здесь непонятного? Тоже самое. И, наверно, удовлетворившись своим ответом Вы бы послали Сына продолжать непонимать? Так бы было? Почему Вы все меряете людей по себе? Как будто Вы изначально все знали. Вообще не ходили бы в институты, ведь в книжках все есть, а в высших заведениях ничего не дают. Вот если Вы сами научились программировать, не ходили в институт и все сами постигаете, то Вы вправе так отвечать. А если не Так, то Вообще не отвечайте. Именно из за Вас Люди и стесняются написать. А ведь иногда человеку необходим маленький толчок, чтобы он сам смог взять себя в руки. А если Вы настолько знающие, то поразите мир своими фреймворками, супер быстрыми алгоритмами, и неведомо крутыми программными продуктами. Ведь концепции одни, нужно всего лишь подумать. Но я же думаю, что несмотря на всю свою крутость Вы будете ползоваться готовыми продуктами, оправдывая это нежеланием строить велосипеды.
Что такое админ-панель сайта и как туда зайти
Для создания сайта и его управления необязательно знать различные языки программирования и разбираться в базах данных. Всю работу можно выполнить через удобный для пользователей интерфейс — административную панель сайта.
В этой статье рассмотрим, что такое админ-панель, как найти админ-панель сайта и как в нее войти.

Из статьи вы узнаете:
- Что такое админ-панель и зачем она нужна
- Как зайти в админку сайта на разных CMS
- Как зайти в админку сайта на WordPress
- Как зайти в админку сайта на Joomla!
- Как зайти в админку сайта на OpenCart
- Как зайти в админку сайта на MODX
- Как зайти в админку сайта на Drupal
- Как зайти в админку сайта на Magento
- Как зайти в админку сайта на PrestaShop
Что такое админ-панель и зачем она нужна
Админка сайта, admin panel или бэкенд — это графическая панель управления сайтом. Она есть у всех веб-ресурсов, созданных с помощью CMS.
CMS, или движок сайта — это система управления контентом, с помощью которой любой пользователь без навыков программирования может создать сайт и наполнить его материалами. Наиболее популярные CMS — это WordPress, Joomla!, OpenCart, Drupal, MODX, PrestaShop и Magento.
Работать с сайтом, который сделан на CMS, можно именно через админку, без редактирования кода. Дизайн админ-панели и ее функционал частично отличается в зависимости от используемой CMS. Однако, основные возможности одинаковые.
С помощью админ-панели вы сможете:
- настроить структуру сайта;
- изменить внешнее оформление сайта;
- добавить и редактировать контент;
- создать дополнительных пользователей и настроить права доступа.
Как зайти в админку сайта на разных CMS
Базовый алгоритм действий для входа в админ-панель одинаковый. Вам нужно:
- Определить, на какой CMS построен сайт. Можете использовать специальные онлайн-сервисы для этого, например whatcms.org. Эта информация нужна, чтобы узнать адрес админки сайта.
- Открыть страницу авторизации. URL-адрес будет отличаться в зависимости от CMS. Дальше в статье мы рассмотрим ссылки для наиболее популярных движков.
- Ввести имя пользователя и пароль. Вы указывали их при установке CMS на доменное имя.
- Войти.
Если же вы поставили CMS с помощью автоустановщика Softaculous Apps Installer, получить доступ к админ-панели можно в один клик: нажмите на иконку администратора. Вы автоматически авторизуетесь и перейдете в панель управления.

Если вы заказывали хостинг с предустановленным движком у нас, то мы отправили логин и пароль к админ-панели на вашу почту. Проверьте папки со входящими письмами и спамом. Тема письма: «Название_движка была успешно установлена».

Давайте разберемся, как войти на сайт от имени администратора на разных CMS.
Как зайти в админку сайта на WordPress
Чтобы войти в админку сайта на WordPress, добавьте к вашему домену /wp-admin в адресной строке браузера:

WordPress автоматически перенаправит вас на страницу входа администратора. Но вы также всегда можете вручную перейти прямо к ней, добавив /wp-login.php к вашему домену.

Порой обе ссылки могут не работать из-за дополнительных настроек безопасности. Некоторые плагины, например WPS Hide Login, меняют URL-адрес входа в админку со стандартного на придуманный вами. Это простой способ защитить свой сайт от взлома.
Если вы не помните новый URL-адрес, отключите плагин. Для этого:
1. Перейдите в папку вашего сайта на хостинге, дальше в папку wp-content, затем в папку plugins.
2. Найдите каталог с именем вашего плагина защиты и переименуйте его.Панель администратора сайта будет снова доступна по стандартному адресу: example.com/wp-login.php.
Когда вы окажетесь на странице авторизации, введите логин и пароль вашего админ-пользователя, нажмите кнопку «Log in»:

WordPress перенаправит вас в админку сайта:

Экономьте свое время: делайте сайт на хостинге с автоустановщиком движков!
WordPress, OpenCart, Joomla! — несколько кликов, и желаемый движок уже установлен. А если захотите попробовать другую CMS, это займет две минуты вашего времени.
В комплекте с хостингом вы получаете удобную панель управления, быстрые SSD-диски и умную круглосуточную службу поддержки А еще его можно тестировать бесплатно в течение 30 дней.
А если вы уже выбрали CMS, берите хостинг с предварительно настроенным движком. Всю скучную работу мы берем на себя, вам остается зайти в админку и начать разрабатывать дизайн сайта
Как зайти в админку сайта на Joomla!
Чтобы войти в админку сайта на Joomla!, добавьте к вашему домену /administrator в адресной строке браузера:

На открывшейся странице введите логин и пароль вашего админ-пользователя, нажмите кнопку «Log in»:

Joomla! перенаправит вас в админку сайта:

Как зайти в админку сайта на OpenCart
Чтобы войти в админку сайта на OpenCart, добавьте к вашему домену /admin в адресной строке браузера:

На открывшейся странице введите логин и пароль вашего админ-пользователя, нажмите кнопку «Login»:

OpenCart перенаправит вас в админку сайта:

За 6 минут покажем лучший хостинг для новичков: как заказать и начать с ним работать
Покажите мне ваш хостинг
Я и так знаю, что вы клевые!Как зайти в админку сайта на MODX
Чтобы войти в админку сайта на MODX, добавьте к вашему домену /manager в адресной строке браузера:

На открывшейся странице введите логин и пароль вашего админ-пользователя, нажмите кнопку «Login»:

MODX перенаправит вас в админку сайта:

Как зайти в админку сайта на Drupal
Чтобы войти в админку сайта на Drupal, добавьте к вашему домену в адресной строке браузера:
- /user/login для версии движка 8 и 9;
- /?q=user для версии движка 7;
- /?q=admin для версии движка 6.
В этой статье мы покажем, как войти на сайт на Drupal 9 от имени администратора.

На открывшейся странице введите логин и пароль вашего админ-пользователя, нажмите кнопку «Log in»:

Drupal перенаправит вас в админку сайта:

Быстрые серверы, удобная панель управления и заботливая поддержка 24/7
При заказе хостинга на полгода — зарегистрируем домен в подарок!
При покупке на год — скидка 30%
☝️ Гарантируем вернуть деньги в течение 30 дней, если вам что-то не понравилось или не подошло.Как зайти в админку сайта на Magento
URL-адрес админки сайта на Magento уникальный для каждого сайта. Вы указываете его сразу при установке сайта. Для нашего сайта — это example.com/myadmin:

На открывшейся странице введите логин и пароль вашего админ-пользователя, нажмите кнопку «Sign in»:

Magento перенаправит вас в админку сайта:

Как зайти в админку сайта на PrestaShop
URL-адрес админки сайта на PrestaShop тоже уникальный для каждого сайта. Вы задаете его при установке движка. Для нашего сайта — это example.com/myadmin:

На открывшейся странице введите логин, для PrestaShop используется email-адрес, и пароль вашего админ-пользователя. Нажмите кнопку «Log in»:

PrestaShop перенаправит вас в админку сайта:

Статья по теме:

Как восстановить доступ в админку сайта на разных CMS
Восстановить пароль для входа в админ-панель можно с помощью:
- встроенного функционала на странице авторизации;
- Softaculous Apps Installer;
- базы данных сайта.
В этой статье мы рассмотрим первый и второй варианты — наиболее простые способы.
У каждой CMS своя страница авторизации, но процесс восстановления доступа для всех движков похожий. Вам нужно:
- Открыть страницу авторизации.
- Найти опцию для восстановления пароля. Чаще всего встречаются варианты: «Lost your password?», «Forgot your password?», «I forgot my password».
- Заполнить форму. Обычно нужно ввести электронную почту администратора сайта. Вы указывали ее при установке CMS. Система отправит на этот почтовый ящик письмо с инструкциями.
- Следовать инструкциям в письме, чтобы сбросить пароль.




Если же вы установили CMS с помощью Softaculous Apps Installer, сбросить пароль от админ-панели можно в несколько шагов.
Найдите ваш сайт в списке установок в Softaculous Apps Installer и выберите опцию «Edit»:

Введите имя пользователя и новый пароль в разделе «Admin Account»:

Попробуйте хостинг с кучей плюшек: автоустановщиком 330 движков, конструктором сайтов и теплой поддержкой 24/7!

Что запомнить об админ-панели сайта
- Доступ в админку сайта отличается в зависимости от используемой CMS. Потому, чтобы узнать адрес админ-панели, сначала определите движок сайта. Это можно сделать с помощью онлайн-сервисов.
- Попасть на страницу авторизации можно, добавив определенные слова к домену, например /admin, /wp-login.php или /administrator, в адресную строку браузера.
- При утере админ-пароля, вы можете воспользоваться встроенным функционалом по восстановлению доступа. Система отправит уведомления с пошаговыми инструкциями на почтовый ящик администратора сайта.
- Если вы установили CMS с помощью Softaculous Apps Installer, используйте его для входа или сброса пароля.
Надеемся, что эта информация и практические советы по входу в админ-панель сайта были полезны для вас. Сохраняйте статью в закладки или делитесь ей в соцсетях, чтобы она всегда была под рукой.
И если у вас будут трудности с доступом в админ-панель вашего сайта, не стесняйтесь обращаться в нашу поддержку. Ребята на связи круглосуточно и без выходных.
Anastasiia Tsiuryk
Работает в американской компании Namecheap. Первые 2 года помогала клиентам освоиться с хостингом. С 2019 года обучает команду поддержки, пишет лекции по хостингу и статьи для базы знаний. На досуге разгадывает судоку и чинит белые страницы на сайтах.
CMS. Админ-панель
Потихонечку продвигаюсь со своей CMS и уже занимаюсь админкой. Можно было бы наскоком прописать нужные функции и темплейт, но решил не спешить, и сделать так, чтобы админка была не вещью в себе, а выполняла лишь роль менеджера.
Подход, который я решил применить заключается в том, чтобы отказаться от тяжеловесных админских функций и перенести «физическую нагрузку» на плагины (или что-то аналогичное).
Получилась такая схема.
1. Вход в админку происходит по адресу http://site/admin/действие/параметры
2. «Действие» — это плагин или какая-то функция, которой передается управление. «Параметры» — с этим уже сама функция будет разбираться.
3. Сама же админка представляет собой html-темплейт, где прописаны четыре функции: mso_admin_header(), mso_admin_menu(), mso_admin_content(), mso_admin_footer(). Из названий понятно для чего они предназначены.
4. Теперь для того, чтобы вывести скажем настройки какого-либо плагина, мы просто вешаем (в плагине) хук на admin_content, а пункт меню добавлем как хук на admin_menu.
5. Таким образом подключить любой плагин к админке очень просто. Это буквально пара функций.
Конечно предстоит еще решить вопрос о дефолтных настройках/страницах, но в целом они ничем не будут отличаться от подключения тех же плагинов.
Следующая проблема с которой мне пришлось столкнуться — это админские функции по управлению базой. «Классический» подход заключается в том, чтобы наделать функций по управлению, создать html-формы и все это автоматом вызывать при входе в админ-панель.
Проблема здесь в том, что этих функций будет много и они будут между собой взаимосвязаны. Если нужно будет что-то изменить, то эта цепочка может протянуться очень далеко. В том же WordPress’е админка — это что-то невообразимое: огромное количество функций, которые не только переплетены между собой, но еще и тянутся к функциям в wp-include. Понятно, что изменить админку в WordPress очень и очень сложно. Всё, на что можно «позариться», так это смена css-стилей.
Лично мне такой подход не нравится, поскольку он очень сильно сужает рамки функциональности. Предположим нам нужно сделать страницу списка записей. В «классическом» варианте нам нужно было бы сделать отдельный php-файл, жестко его «прикрепить» к админке, написать все функции, выполнить SQL-запрос и выполнить форматирование полученных данных. Если пойти по такому пути, то неизбежно прийдем к «тяжелой» админке.
Теперь, предположим, появляется другой плагин, который выполняет примерно тоже самое, но выводит данные по-другому. В третьем случае мы хотим получить выборку данных для еще каких-то действий. Во всех этих случаях мы выполняем по сути одно и тоже действие — получение данных, а вот отображение может быть различным. Получается, что есть смысл унифицировать основные действия в системе, чтобы вызывать их одной функцией.
Таким механизмом является XML-RPC. В кратце я расскажу что это такое.
В XML-RPC есть две стороны: сервер и клиент. Сервер — это некий php-скрипт, который принимает входящие данные (запрос) и, согласно этому запросу, выполняет определенное действие (метод, функцию). Клиент в свою очередь — это обычный POST, только данные в нем передаются в виде XML-структуры. Например нам нужно получить список последних записей. В запросе мы указываем свой логин, пароль, название метода и количество записей. Отправляем этот запрос и в ответ получаем список последних записей.
Именно так работают оффлайн-клиенты (блог-клиенты). Как видите клиенту совершенно не обязательно знать все тонкости внутренней реализации методов. Все, что ему требуется, так это название метода и его параметры.
Теперь, перенеся эту технологию на нашу админку, мы получаем, что функция для админки должна просто-напросто сформировать XML-запрос к своему же серверу и получить необходимые данные.
Что же получается в итоге.
1. Админка не несет «тяжелых» функций.
2. Простое подключение любых плагинов к админке.
3. Перенос функций для визуального отображения данных в отдельные плагины.
4. Получение данных выполняется через универсальный XML-RPC.
5. В «комплекте» мы сразу же получили работу с блог-клиентами.
На долю самой админки выпадают помимо функции менеджера, еще и работа с разграничением доступа (роли, группы, права), базовые настройки плагинов (включение, отключение, деинсталяция), базовые настройки сайта (выбор шаблона, название, описание и т.п.), то есть только то, что входит в самый минимум: таблицы options и users.
Реализуем добавление постов через админ панель

Приветствую дорогой читатель! Мы закончили разработку базовых возможностей нашего блога, много конечно еще не доделано, но все что мы не доделали, будут вписано в цикл статей под названием «улучшение нашей CMS». Сейчас же хочу поделится планами, касающийся разработки нашей админ панели. Что у нас реализовано в пользовательской части нашей cms?
- Посты — Самое пожалуй главное, что должна уметь админ панель, это добавлять посты, удалять их, и редактировать. Добавление контента будет реализовано через обычную форму с bb кодами. Редактирование будет выглядеть аналогично добавлению постов. ну а удаление будет представлять собой обычную кнопочку
- Меню — Наша админ панель будет полностью управлять пунктами меню. Удаление, редактирование, порядок появления.
- Комментарии — Следует ввести в возможность нашей cms удаление и редактирование комментариев, мало ли, вдруг пригодится
- Сообщение присланные с помощью формы контактов — В случае если использовалась для хранение сообщений не почта а база данных, реализуем некую площадку, где можно будет читать и удалять присланные сообщения.
Для начало думаю достаточно. После реализации этого будем думать о улучшениях всего нами написанного.
А сейчас же предлагаю приступить к реализации нашей первой возможности. В этой статье мы создадим нужные нам папки, добавим пару файлов, и введем простую форму, пока что без bb кодов, для добавление постов в базу данных.
Для начало советую создать нужные нам папки.. Админка будет находится в папке admin. В этой папке создайте следующие каталоги:
- /img — Тут будем хранить графике админки
- /moduls — Папка для модулей нашей админки
- /templates — Папка с шаблонами
В папку admin/templates нужно скопировать из папки templates наш style.css. Для примера будем использовать стили из нашей пользовательской части.
Наша админка должна как то выглядеть, дизайн измудрять не будем, и воспользуемся нашим index.html, вот его переделанный код:
">
">
Добро пожаловать в админ панель
По сути это все тот же index.html из нашей пользовательской части, за одним маленьким исключением, удалил часть отвечающую за вывод меню. Сохранил я этот файл в папку шаблонов admin/templates.
Прежде чем приступить к выводу главной странице админки, хочу описать ее. Она будет выглядеть как большое меню. То есть по середине экрана мы увидим много всяких разных кнопочек. Так вот при запуске главной странице мы увидим такое большое меню, вот для начало давайте создадим шаблон с этим меню.
Обычная таблица с шестью ячейками.. В одной из них я разместил ссылку на первую нашу возможность, ну то есть по этому адресу будет находится форма для добавление постов. Ссылка изображена в виде графической кнопки, вот ссылка на кнопку: Кнопка
Лежать изображение должно в папке img, называться add_content.jpg
Полученный html файл я назвал menu.html и поместил в папку шаблонов
Пришло время поговорить о файле index.php. Для начала давайте подумаем, что будет в нем? Первым делом в этом файле понадобится написать подключение к базе данных. Далее нам нужно будет подключить главный шаблон index.html. Так как наш шаблон не содержит никакой информации, нужно будет создать и подключить модуль, который с генерирует меню и выведет на экран. Ну и забегая вперед, в этом файле будет так же подключаться модуль, отвечающий за появление формы для добавление постов в базу данных. Как Вы догадались, нам нужно написать два модуля и шаблон с формой. Начнем с модуля, который с генерирует нам меню. Код выйдет не большой, нам всего лишь необходимо подключить шаблон и вывести его в переменную, вот код с комментариями:
function menu()
$sm_read = file("templates/menu.html");//. подключаем шаблон
$sm_read = implode("",$sm_read);//функция file() возвращаем массив, поэтому склеиваем его
return $sm_read;//Выводим с генерированный html код
>
?>Назвал модуль menu.php и сохранил в папку с модулями
Далее считаю необходимым создать шаблон для формы. Ну то есть саму форму
Тут ничего сложного нет, три поля:
- Для названия поста
- Текст поста
- Автор поста
Ну и собственно кнопка для отправки. Обратите внимание на ссылку обработчика — index.php?page=add_content. Полученный файл я назвал addcontent.html и поместил в папку с шаблонами.
Так. Создадим модуль который будет выводить форму, вот код с комментариями:
function addcontent()
$sm_read = file("templates/addcontent.html");//. подключаем шаблон
$sm_read = implode("",$sm_read);//функция file() возвращаем массив, поэтому склеиваем его
return $sm_read;//Выводим с генерированный html код
>
?>Тут тоже ничего экстраординарного Назвал этот модуль addcontent.php и поместил в папку с модулями moduls
Ну что ж.. Все файлы, которые нам сейчас нужны, созданы. Пришло время их объединить в один:
//ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ (БД)
$nameDB = "blog";//Название БД
$nameSERVER = "localhost";//Сервер
$nameUSER = "root";//Имя пользователя БД
$passUSER = "";//Пароль пользователя БД
mysql_select_db($nameDB, mysql_connect($nameSERVER,$nameUSER,$passUSER));
//ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ (БД)
$header_title = "Админ панель";
$header_metaD = "Описание страницы";
$header_metaK = "Ключевые слова страницы";
if($_GET['page'])$page = $_GET['page']; else $page = "index";//Определяем страницу которая открыта.
//Если переменная не существует значит открыта главная страница
//ГЛАВНОЕ МЕНЮ АДМИНКИ
if($page == "index")//Главная страница
include("moduls/menu.php");//Подключаем модуль
$txt = menu();//Помещаем с генерированный код в переменную
>
//ГЛАВНОЕ МЕНЮ АДМИНКИ
//ДОБАВЛЕНИЕ КОНТЕНТА
if($page == "add_content")//Если открыта страница добавление постов
include("moduls/addcontent.php");//Подключаем модуль
$txt = addcontent();//Выводим с генерированный код в переменную
>
//ДОБАВЛЕНИЕ КОНТЕНТА
include("templates/index.html");//Выводим главный шаблон на экран
?>Назвал файл index.php и поместил в папку admin.
Если сейчас запустить полученный файл ( я про index.php ) Вы увидите главную страницу с кнопкой «Добавить материал». Щелкнув по этой кнопке, Вы попадете на страницу с формой.
Думаю не плохо для начала, не так ли?
А теперь давайте организуем обработчик, который запишет в базу данных информацию, посланную из формы, обработчик будем писать в модуле addcontent.php перед функцией addcontent():
//Объявляем переменные, если форма была заполнена и отправленна
if($_POST['name_post'])$name_post = $_POST['name_post'];
if($_POST['txt_post'])$txt_post = $_POST['txt_post'];
if($_POST['author_post'])$author_post = $_POST['author_post'];
//Объявляем переменные, если форма была заполнена и отправленна
if($name_post & $txt_post & $author_post)//Если существуют посланные данные.
/. то
$date_day = date("d");//Определяем день
$date_month = date("m");//Определяем месяц
$date_year = date("Y");//Определяем год
$date_time = date("H:i");//Определяем часы и минуты
$date_cont = $date_day."/".$date_month."/".$date_year." ".$date_time;//Склеим все переменные в одну
//получим дату для записи в формате день/месяц/год часы:минуты
//Заменяем html код на аналог
$name_post = htmlspecialchars($name_post);
$txt_post = htmlspecialchars($txt_post);
$author_post = htmlspecialchars($author_post);
//Избавляемся от кавычки
$name_post = str_replace("'","'",$name_post);
$txt_post = str_replace("'","'",$txt_post);
$author_post = str_replace("'","'",$author_post);
$txt_post = str_replace("\n","",$txt_post);//Заменяем переносы строки на тег
//ДОБАВЛЯЕМ ПОСТ В БАЗУ ДАННЫХ
$result_add_cont = mysql_query ("INSERT INTO blog (text,title,author,date_b)
VALUES ('$txt_post','$name_post','$author_post','$date_cont')");
//ДОБАВЛЯЕМ ПОСТ В БАЗУ ДАННЫХ
header("location: index.php");//Перенаправление
exit;//на главную страницу
>Ну что ж.. Думаю то, что хотели сделать сделали. В следующей статье мы будем писать редактирование для постов, не переключайтесь А на сегодня все, удачи Вам!

Исходник 


Возможно Вам будут интересны следующие заметки

Комментарии (63)
Ольга , 27 Марта 2012 г. 14:45 пишет:

у меня опять ошибка:
Warning: Cannot modify header information — headers already sent by (output started at Z:\home\localhost\www\00blog\admin\index.php:1) in Z:\home\localhost\www\00blog\admin\moduls\addcontent.php on line 3434 строка это
header(«location: index.php»);//ПеренаправлениеНо в БД все записалось. Ура!
Михаил , 07 Мая 2012 г. 11:39 пишет:

Спасибо за материалы
Анастасия , 17 Июля 2012 г. 18:11 пишет:
у меня в бд не записывается
Rio-Shaman , 17 Июля 2012 г. 22:48 пишет:
А можно поподробнее?
Ответ для пользователя: Анастасия
Анастасия , 18 Июля 2012 г. 16:27 пишет:
Записываю новую статью, сохраняю, проверяю БД, а там только старые записи, которые вручную вбивались
Rio-Shaman , 18 Июля 2012 г. 22:01 пишет:
Проблем в коде быть не должно. Вполне возможно у Вас нет подключение к базе данных, или же таблица в базе данных имеет какое то другое свойство.. Может колонку переименовали, или сама таблица называется по другому.
Ответ для пользователя: Анастасия
Анастасия , 19 Июля 2012 г. 15:09 пишет:
Все, заработало)
SerJ , 22 Августа 2012 г. 19:26 пишет:
Хотел задать вопрос администратору, никогда не задавались мыслью, целью, как сделать заглушку на сайт на время тех работ, (если есть такое, то поделиться с окружающими). Что бы было все как полагается с админской частью .
Rio-Shaman , 22 Августа 2012 г. 19:45 пишет:

Я никогда не задавался целью вводить возможность ставить подобную заглушку из админ панели. Я всегда прописывал необходимый код сразу в главный файл. Как по мне, не стоит из-за такого пустяка писать хитроумный алгоритм. Проще просто открыть index.php и в самом вверху прописать вот такой код:
die(«Ведутся тех работы»);
Ответ для пользователя: SerJ
Алексей , 25 Августа 2012 г. 15:17 пишет:
А мы будем добавлять категорию к посту через Админку, или эту возможность мы реализуем сами?
Rio-Shaman , 25 Августа 2012 г. 21:25 пишет:
Вы вот про это: http://rio-shaman.ru/index.php?blog=75
Ответ для пользователя: Алексей
Юрий , 09 Сентября 2012 г. 18:47 пишет:
Не добавляются посты в базу данных (
Правильно ли я понимаю, что подклюение к базе проходит в файле index.php, где указывается имя БД, сервер, пользователь и пароль, и также в файле addcontent.php, где в строке «$result_add_cont = mysql_query («INSERT INTO blog (text,title,author,date_b) » вместо blog вставляю название своей таблицы? т.е. у меня будет $result_add_cont = mysql_query («INSERT INTO newsb (text,title,author,date_b) ? при этом в этой таблице 5 полей, id,text,title,author,date_b, если да — то ничего не получается( пишу материал, нажимаю добавить, меня перенаправляет на главную админки, смотрю базу данных — нет ничего нового . тут пользователь Анастасия говорила что такая же поблема и уже решила ее, но к сожалению не описала как (Rio-Shaman , 10 Сентября 2012 г. 00:47 пишет:

Подключение к базе данных происходит лишь один раз, в index.php. Все остальные файлы подключаются к главному (index.php) при помощи функции include() именно поэтому в них не нужно использовать функцию mysql_select_db().
Что касается название таблицы, то у меня используется таблица blog (именно таблица, не путать с самой базой данных (имена и у таблицы и у базы данных одинаковые — blog)). Если Ваша таблица называется не blog (именно таблица, а не база данных) то Вам естественно в запросе INSERT необходимо указать свою таблицу.
Если Вы не путаете таблицу с базой данных, и при этом у Вас все равно ничего не получается, то попробуйте сразу после:
//ДОБАВЛЯЕМ ПОСТ В БАЗУ ДАННЫХ
$result_add_cont = mysql_query («INSERT INTO blog (text,title,author,date_b)
VALUES (‘$txt_post’,’$name_post’,’$author_post’,’$date_cont’)»);
//ДОБАВЛЯЕМ ПОСТ В БАЗУ ДАННЫХВставьте вот такой код:
echo mysql_error(); exit;
Если при запросе на добавление поста в базу данных произошла ошибка, то данная функция позволит узнать что именно произошло..
Пятое поле это id поле, оно заполняется автоматически, с этим проблем быть не должно..
Опубликуйте текст ошибки, посмотрим что там.
Ответ для пользователя: Юрий
Юрий , 10 Сентября 2012 г. 10:28 пишет:
Спасибо!)) вставил, показал ошибку что не нашел поле даты, оказывается я не правильно написал ее )) поэтому он ее не видел. Сейчас исправил — материалы добавляются в базу)
а не могли вы ответить на вопрос в этом сообщении?: http://rio-shaman.ru/index.php?blog=39Роман , 18 Сентября 2012 г. 09:12 пишет:

А скажите пожалуйста как сделать доп. поле? Источник например. Вторую неделю мучаюсь ни че не получается..
Роман , 18 Сентября 2012 г. 09:27 пишет:

Каковы были мои действия:
1) Добавил в БД новое поле.
2) добавил в файл addcontent.php
строку с переменной
if($_POST[‘txt_post’])$txt_post = $_POST[‘txt_post’];
далее добавил в «добавление поста» в двух местах эту переменную.
3) добавил поле в шаблоне добавления поста.жму «Добавить пост» и страница просто обновляется.
Rio-Shaman , 18 Сентября 2012 г. 09:29 пишет:

1. Создаете в базе данных новую колонку (называете ее например — additionally)
2. Рисуете новое поле в шаблоне addcontent.html (атрибут name нового поля например — additionally)
3. В обработчике формируете переменную из присланных данных методом POST ($additionally = $_POST[‘additionally’])
4. Проверяете новую переменную ($additionally) на html код и убираете кавычку если есть.
5. Записываете новую переменную в созданную ранее колонку таблицы в базе данных.Ответ для пользователя: Роман
Rio-Shaman , 18 Сентября 2012 г. 09:33 пишет:
По всей видимости Вам всего лишь осталось переделать INSERT запрос.
Ответ для пользователя: Роман
Роман , 18 Сентября 2012 г. 10:31 пишет:
INSERT INTO blog и VALUES туда тоже добавил переменную.
Rio-Shaman , 18 Сентября 2012 г. 14:52 пишет:
Попробуйте сразу после:
//ДОБАВЛЯЕМ ПОСТ В БАЗУ ДАННЫХ
$result_add_cont = mysql_query («INSERT INTO blog (text,title,author,date_b)
VALUES (‘$txt_post’,’$name_post’,’$author_post’,’$date_cont’)»);
//ДОБАВЛЯЕМ ПОСТ В БАЗУ ДАННЫХПоставить вот такой код:
Так Вы сможете узнать какая именно происходит ошибка при добавление строчки в базу данных.
Ответ для пользователя: Роман
Роман , 18 Сентября 2012 г. 16:07 пишет:
Уже пробовал. Страница просто обновляется.
Rio-Shaman , 18 Сентября 2012 г. 16:35 пишет:
И при этом в базу данных не попадает новая запись?
Ответ для пользователя: Роман
Роман , 18 Сентября 2012 г. 16:49 пишет:
К сожалению, нет, не попадает!
Rio-Shaman , 19 Сентября 2012 г. 09:21 пишет:
А Вы уверены что условие обработчика, в моем случае это:
if($name_post & $txt_post & $author_post)
.
>срабатывает?
Попробуйте в тело воткнуть вот такой код:У меня бы это выглядело вот так:
Если при отправки записи на обработку Вы не увидите сообщение значит само условия обработчика не проходит проверку. Если же увидите, то я даже не знаю что еще может быть не так =(
Ответ для пользователя: Роман
Роман , 19 Сентября 2012 г. 10:32 пишет:
Не увидел. т.е. надо ковырять if($name_post & $txt_post & $author_post) в эти скобки надо добавлять ту переменную которую я добавляю?
Rio-Shaman , 19 Сентября 2012 г. 17:04 пишет:

Добавление Вашей переменной совершенно не обязательно, но на всякий пожарный я бы добавил =)) Измените условие приблизительно вот так:
if (isset($name_post) AND isset($txt_post) AND isset($author_post) AND isset($Ваша переменная))
.
>Если после этого, в базу данных, не будет добавляться запись, значит одна из этих переменных не создана. Может поле в шаблоне не правильно названо, или, в коде сбора присланной информации, имя переменной имеет опечатку.
Ответ для пользователя: Роман
Роман , 20 Сентября 2012 г. 12:00 пишет:
Разобрался я вчера, добавляется переменная.
Только у меня появился другой вопрос. При добавлении поста, если оставляешь поле пустым, данные не добавляются.. как сделать так чтобы можно было оставить поле пустым?Rio-Shaman , 20 Сентября 2012 г. 16:48 пишет:

Везде где идет проверка на существование переменной (например: if ($_POST[‘name_post’]) . ) прописывайте isset (например вот так: if (isset ($_POST[‘name_post’])) . ).
Оставляя поле пустым Вы посылаете пустоту. Запись которая сейчас (первый пример) воспринимает пустоту как ложное, а с использованием isset в переменную попадет пустота, которая должна записаться в базу данных.Для примера попробуйте запустить вот этот код:
$_GET[‘1’] = »;
if ($_GET[‘1’]) $s = $_GET[‘1’];
if(!isset($s)) echo «нет»;
else echo ‘есть’;Вы увидите надпись «Нет». А теперь запустите вот этот код:
$_GET[‘1’] = »;
if (isset($_GET[‘1’])) $s = $_GET[‘1’];
if(!isset($s)) echo «нет»;
else echo ‘есть’;Вы увидите надпись «есть»
Ответ для пользователя: Роман
Сергей , 03 Октября 2012 г. 18:05 пишет:
Да, c utf8 получаются кракозябры.
Сергей , 03 Октября 2012 г. 18:15 пишет:
Разобрался, надо было при подключении базы данных сменить кодировку
ZedRott , 23 Марта 2013 г. 21:44 пишет:
У меня вопрос : что нужно припаять к textarea, чтобы не приходилось использовать HTML для переноса строк? ато если просто скопипастить откуда-нибудь текст — он добавляет в БД всё подряд (без переноса строк)
Nikita , 25 Марта 2013 г. 11:33 пишет:

Создайте соответствующую кнопку переноса строки аля ББ код.
Пример создания подобных штук http://rio-shaman.ru/index.php?blog=47Ответ для пользователя: ZedRott
Дмитрий , 17 Июля 2013 г. 12:36 пишет:
Здравствуйте! А как можно проверить перед отправкой введенные даные? Я пока сделал частично на js,но хотелось бы на пхп. И как можно сделать чтоб после того как нажать «отправить», высвечивалось например «статья успешно добавлена» если нет то выдало ошибку? А то оно просто редиректит и не понятно добавилась ли статья или нет.
Алексей , 17 Июля 2013 г. 12:57 пишет:

Пример реализации ошибок для формы есть вот тут:
http://rio-shaman.ru/razrabotka-cms/uluchshenija/apgrejd-modulja-kontaktov/
Правда данный пример относится к форме обратной связи.Там же кстати есть и способ реализации вывода сообщения о успешной операции..
Ответ для пользователя: Дмитрий
Сергей.Р , 15 Ноября 2013 г. 13:34 пишет:
Алексей подскажите пожалуйста!Вообщем проблема в том что при добавлении через админку добавляются пустые строки(
if (isset($_POST['meta_d'])) if (isset($_POST['meta_k'])) if (isset($_POST['date'])) if (isset($_POST['description'])) if (isset($_POST['text'])) if (isset($_POST['author'])) ?>
оброботчик ваш урок успешно добавлен!";> elseваш урок не добавлен!";> > else < echo""; >?> Алексей , 15 Ноября 2013 г. 14:00 пишет:

Прежде чем пользоваться sql запросом, проверьте есть ли в переменных:
— $title
— $meta_d
— $meta_k
— $date
— $description
— $text
— $author
какие либо данныеПо идеи все должно работать
Ответ для пользователя: Сергей.Р
Сергей.Р , 15 Ноября 2013 г. 14:15 пишет:
А как лучше всего произвести проверку?
Ответ для пользователя: Алексей
Алексей , 15 Ноября 2013 г. 14:21 пишет:
Ну что-то типа того:
var_dump($title); echo "
"; var_dump($meta_d); echo "
"; var_dump($meta_k); echo "
"; var_dump($date); echo "
"; var_dump($description); echo "
"; var_dump($text); echo "
"; var_dump($author);Ответ для пользователя: Сергей.Р
Сергей.Р , 15 Ноября 2013 г. 15:34 пишет:
Дмитрий произвёл проверку,вытащились все пункты которые добавлял через админку,что это может значить?
это значит что переменные имеют значения, почему тогда не срабатывает не пойму(Сергей.Р , 15 Ноября 2013 г. 15:41 пишет:

Чуть не забыл в саму базу данных добавляется только идентификатор который там проставляется автоматически и дата,все остальные ячейки пусты.
Алексей , 15 Ноября 2013 г. 17:13 пишет:

Попробуйте в запрос проставить не переменные, а значения ручками
$sql = "" ."INSERT INTO" ." lessons" ." (" ." title," ." meta_d," ." meta_k," ." data," ." description," ." text," ." author" ." )" ." VALUES" ." (" ." 'Тест заголовка'," ." 'Тест описания'," ." 'Тест ключевых слов'," ." 'Тест даты (не знаю в каком формате у Вас дата)'," ." 'Тест описание статьи'," ." 'Тест текст статьи'," ." 'Тестовый автор'" ." )" ; $result = mysql_query($sql);Если запись произойдет, то проблема в переменных, если нет, то проблема в БД (вот только какая, хз)
Ответ для пользователя: Сергей.Р
Сергей.Р , 15 Ноября 2013 г. 20:06 пишет:
Алексей спасибо большое!попробую обязательно, результат отпишу
Сергей.Р , 18 Ноября 2013 г. 15:25 пишет:
Здравствуйте Алексей.Ваш запрос мне сделать не удалось выдаёт ошибки(
но тут погугли и произвёл проверку содержатся ли что то в переменной $_POST,ВОТ ТАКИМ ОБРАЗОМ
echo »;
print_r($_POST);
die();
оказалось что переменная POST содержит массив с теми самими записями которые я пытаюсь добавить.
может ли это значить что проблема в БД?
Алексей , 18 Ноября 2013 г. 16:31 пишет:
Ваш запрос мне сделать не удалось выдаёт ошибки
Вы его вставляли без изменений? Если да, то просмотрите данные которые я простовлял. Некоторые из них нуждаются в правке.
И еще, хотелось бы узнать что за ошибки, если Вы все же изменяли мой запрос.
Ответ для пользователя: Сергей.Р
Алексей , 18 Ноября 2013 г. 16:41 пишет:
И я опять в запросе поле date написал с ошибкой 🙁
Вот правильный запрос:$sql = "" ."INSERT INTO" ." lessons" ." (" ." title," ." meta_d," ." meta_k," ." \"date\"," ." description," ." text," ." author" ." )" ." VALUES" ." (" ." 'Тест заголовка'," ." 'Тест описания'," ." 'Тест ключевых слов'," ." 'Тест даты (не знаю в каком формате у Вас дата)'," ." 'Тест описание статьи'," ." 'Тест текст статьи'," ." 'Тестовый автор'" ." )" ; $result = mysql_query($sql);Ответ для пользователя: Сергей.Р
Сергей.Р , 18 Ноября 2013 г. 18:39 пишет:
Алексий Спасибо вам огромное. на форумах так со мной не возились как здесь)
вообщем я решил проблему переустановил денвер ) всё добавилось только вот с кодировкай не как не могу разобраться квадратоми в браузере сохраняет,в БД UTF-8,у меня в редакторе UTF-8,ставил и кириллицу всё равно квадраты не знаю что ещё придумать(Сергей.Р , 18 Ноября 2013 г. 18:45 пишет:

а в БД тож не понятно что за китайская письменность))
Алексей , 19 Ноября 2013 г. 11:18 пишет:
Для того чтобы кодировка UTF-8 работала адекватно, Вам нужно:
1. Что бы все файлы вашего проекта имели кодировку utf-8
2. При подключение к БД нужно выставить явную кодировку (Вот этой строчкой, сразу после mysql_select_db())mysql_query("SET NAMES 'utf8'");3. Сервер должен иметь кодировку UTF-8. Я так понял Вы пользуетесь денвером, а у него, если мне память не изменяет, сервер в кириллице. Вам нужно в корень Вашего сайта положить файл .htaccess с следующей настройкой:
AddDefaultCharset utf-8
4. Сама база данный должна иметь кодировку UTF-8. Т.е. при создание БД в phpmyadmin, выберите сравнение utf8_general_ci. Вот скрин
5. В html желательно создать вот такой мета тег:Мне для того чтобы мой проект адекватно работал с utf-8 кодировкой, было достаточно проделать данные 5 шагов.
Ответ для пользователя: Сергей.Р
Сергей.Р , 24 Ноября 2013 г. 20:12 пишет:
Спасибо Алексей помогло!
Дмитрий , 18 Февраля 2014 г. 10:26 пишет:
Алексей, делал все с самого начала (и всё работало), в настоящее время дошёл до этого поста и теперь в админ панель вхожу, но после клика по кнопке «Добавить материал» перекидывает сразу на главную страницу блога (причём в командной строке http://site.ru/index.php?page=add_content) — как быть (туплю уже пару часов).
Дмитрий , 18 Февраля 2014 г. 12:00 пишет:

Да уж, не даётся мне пхп, исправил только сравнением с и-ом.
Алексей , 19 Февраля 2014 г. 10:33 пишет:
Вы создавали папку admin. Положили в нее файл index.php?
Ответ для пользователя: Дмитрий
Дмитрий , 20 Февраля 2014 г. 05:17 пишет:
Да папку создавал и index.php тоже (всё как Вы расписывали), ничего не изменилось (если терпения хватит буду дальше тупить). Долго не отвечал разбирался с v2.8.0, и тут тоже всё не слава богу — всё установил->вроде всё работает(особо не тестил)-> и сразу же после удаления inst. в настройках поменял на ЧПУ (и тут засада). Почистил кэш->перезагрузил блог, и началось (то при наведении ссылки видны с ЧПУ, то в перемешку,ссылка контакты при наведении вообще не приобретает вид ЧПУ). И в этом режиме постоянно выдаёт ошибку 500. Т.е. после клика ошибка 500, а в командной строке всё как положено ЧПУ. При install-ии всё ввёл правильно. Блог находится на созданном поддомене blog.an*s.ru (3 ур.). Что делать ума не приложу, что с тем что писал, и что с этим что установил. Вот такие пироги Алексей.
Ответ для пользователя: Алексей
Алексей , 20 Февраля 2014 г. 10:48 пишет:
Честно говоря, я понятие не имею из-за чего у Вас такие проблемы.
Прыгающие ссылки говорят о том, что у Вас не правильно рассчитываются относительные пути. Вопрос почему.Ответ для пользователя: Дмитрий
SomoS , 03 Июля 2014 г. 07:21 пишет:
Приветствую!) Беда в том что в базе все создается, но только на латинском 0о, а вот кириллицу записывать отказывается, что посоветуете?
Ruslan , 18 Июля 2014 г. 00:54 пишет:

У меня такая же беда, как только нажимаю добавить новость перекидывает на главную страницу сайта я посмотрел урл там:http://sitelocal/index.php?page=add_content я изменил урл на:http://sitelocal/administrator/index.php?page=add_content появилась форма добавления новости, в чём проблема разбираюсь.
Ответ для пользователя: Алексей
AMC-77 , 19 Октября 2014 г. 20:54 пишет:
Руслан, доброго времени суток.
У меня такая же проблема была:
если в адресной строке вводишь адрес http://localhost/admin/ — то при нажатии на кнопку ‘добавить материал’ меня выкидывало на главную страницу сайта index.php, т.е. из админки.
если в адресной строке писал http://localhost/admin/index.php — то все работало нормально, никуда не выкидывало и появлялась форма вдобавления материала.так вот решил вопрос вот так:
в файле admin/templates/menu.html
в строке:
удалил лишний слеш:/index.php?page=add_content»> 
и получилось:

после чего стало работать не зависимо от того что написано в адресной строке: admin/ или admin/index.php
Возможно тебе тоже это поможет.
Ответ для пользователя: Ruslan
Павел , 23 Октября 2014 г. 16:34 пишет:
Пока все идет нормально. Бывает кое-что не работает, но ошибки в основном сам нахожу и исправляю.
AigGocha , 14 Января 2015 г. 08:38 пишет:
Здравствуйте ВСЕ.
Алексей огромное спасибо Вам за вашу работу. Пока не где такого не встречал.
По истине очень познавательные посты да и сам блог просто супер. Жаль вот только когда я начинал изучать HTML и CSS не нашел Ваш блог. В этих . форумах не кто так не с кем не возится как Вы, одно хамье.
Один вопросик у меня Алексей если не трудно не могли бы ответить.
По вашим постам пишу один проект, верстка у меня своя резиновая. Но админку сделал как Ваша, то есть просто скопастил все нормально добавляет посты через админку и в базу заносятся, но есть один момент все добавляет без разбора, то есть допустим если где то скопастил или даже сам пишешь пост, вместе с кодом так с кодами и выводит, а в базу вместо кодов какие то краказябры заносятся. Но решил я эту проблему вот так в файле addcontent.php, в нашем случае, я закомментировал вот эти строки, то есть строки: 18, 19, 20 и 27.
//Объявляем переменные, если форма была заполнена и отправленна
if($_POST[‘name_post’])$name_post = $_POST[‘name_post’];
if($_POST[‘txt_post’])$txt_post = $_POST[‘txt_post’];
if($_POST[‘author_post’])$author_post = $_POST[‘author_post’];
//Объявляем переменные, если форма была заполнена и отправленнаif($name_post & $txt_post & $author_post)//Если существуют посланные данные.
/. то
$date_day = date(«d»);//Определяем день
$date_month = date(«m»);//Определяем месяц
$date_year = date(«Y»);//Определяем год
$date_time = date(«H:i»);//Определяем часы и минуты
$date_cont = $date_day.»/».$date_month.»/».$date_year.» «.$date_time;//Склеим все переменные в одну
//получим дату для записи в формате день/месяц/год часы:минуты//Заменяем html код на аналог
//$name_post = htmlspecialchars($name_post);
//$txt_post = htmlspecialchars($txt_post);
//$author_post = htmlspecialchars($author_post);//$txt_post = str_replace(«\n»,»»,$txt_post);//Заменяем переносы строки на тег
//ДОБАВЛЯЕМ ПОСТ В БАЗУ ДАННЫХ
$result_add_cont = mysql_query («INSERT INTO blog (text,title,author,date_b)
VALUES (‘$txt_post’,’$name_post’,’$author_post’,’$date_cont’)»);
//ДОБАВЛЯЕМ ПОСТ В БАЗУ ДАННЫХheader(«location: index.php»);//Перенаправление
exit;//на главную страницу
>
function addcontent()
$sm_read = file(«templates/addcontent.html»);//. подключаем шаблон
$sm_read = implode(«»,$sm_read);//функция file() возвращаем массив, поэтому склеиваем егоreturn $sm_read;//Выводим с генерированный html код
>
?>
Вот после этого все отлично выводит, то есть браузер отображает все как положено, не знаю прав я или нет, но как я думаю если мы добавляем через админку то нет смысла проверять HTML теги ведь это же наша админка, то есть кроме нас отсюда не кто не сможет добавлять посты. Вот сижу и думаю прав я или нет.
Спасибо за ранее!
