Как сделать админку для лендинга

Лендинг - обычно статичная html страница (js+css). Такой сайт будет работать даже на самом дешевом хостинге, не создавать нагрузки на сервер, он не содержит уязвимостей, не подвержен атакам и взломам. Собственно, по этой причине, лендинг не нуждается в обслуживании - в обновлении ПО, мониторинге работы кода и т.д. Поэтому обычно заказчик остается один на один с лендингом (после запуска такого сайта) и, представьте себе, через месяц возникает ситуация, когда у фирмы сменился юридический адрес или поменялись телефоны. Приходится опять выходить на веб-разработчика или искать фрилансера, чтобы внести правки на сайт. Если ситуация повторяется через еще один месяц, невольно думаешь, как обзавестись административной панелью для своего лендинга (если нет своего лендинга смотрите здесь).

Когда лендингу нужна админка

Рано или поздно возникает необходимость в правках на сайте: сменился телефон, адрес, цены... данные устарели и их необходимо актуализировать. Чтобы каждый раз не искать новых фрилансеров для правок, можно сделать за один раз необходимую административную панель: по логину и паролю вы входите в кабинет с настройками своего сайта и сможете сменить любые (заранее предопределенные) данные.

Уверен, многое владельцы лендингов мечтают о такой возможности, не обладая необходимыми знаниями в редактировании html кода, умением работать с файловым менеджером на хостинге или по FTP. Да и вебмастера, пожалуй, не раз слышали от своих клиентов о необходимости внедрения в лендинг административной панели! Многие автоматически, не заморачиваясь, сразу же предлагают прикрутить лендинг к какой-либо распространенной cms (Joomla или WordPress), хотя на практике, делов там на 10-15 минут! Как же создать лендинг с административной панелью (админкой)?

Делаем админку для лендинга

Мы, конечно же, избежим громоздких кодов, прикручивания различных визуальных редакторов... все что нам необходимо - наличие php на хостинге и пару строчек кода! Наша админка для лендинга впоследствии также не будет нуждаться в обновлении кода, обслуживании, занимать лишнее место на хостинге и т.д. Все очень просто!

Авторизация и кабинет администратора

Для начала нам необходимо создать кабинет, в котором администратор сайта сможет авторизоваться. Для этого открываем новую папку на хостинге в корне сайта admin  и в ней два файла pass.php и index.php. Содержимое файла pass.php будет выглядеть следующим образом (содержать ваш логин и пароль для авторизации):

<?php die; ?>
admin
passadmin

Содержимое файла index.php, в котором будет осуществляться авторизация администратора:

<?php 
//очищаем авторизацию при выходе из админки
if($_GET["p"]=='exit') {
session_start();
$_SESSION = array();
session_destroy();
header('Location: ../index.php');
}
// Начинаем сессию и вход в кабинет
session_start(); 
$access = array(); 
$access = file("pass.php"); 
$login = trim($access[1]); 
$passw = trim($access[2]); 
if(!empty($_POST['enter'])) 
{ 
 $_SESSION['login'] = $_POST['login']; 
 $_SESSION['passw'] = $_POST['passw']; 
} 
if(empty($_SESSION['login']) or 
 $login != $_SESSION['login'] or 
 $passw != $_SESSION['passw'] ) 
{ 
 ?> 
 <center> <form action=index.php method=post> 
 Логин <input class=input name=login value=""> 
 Пароль <input class=input name=passw value=""> 
 <input type=hidden name=enter value=yes> 
 <input class=button type=submit value="Вход"> </center> 
 <?php die; } 
// на данном этапе мы реализовали авторизацию, далее мы создаем элементы, которые будут видны администратору, если он введет правильный пароль
?>

<?php 
$file_txt="../config/config.ini"; //путь к файлу настроек
$otp=$_REQUEST['otp'];
$txt=$_REQUEST['txt'];
if(isset($otp)){
$fopen=fopen($file_txt,"w");
fputs($fopen,$txt);
fclose($fopen);
header("location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit;
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form name=forma method=post action="">
<textarea name=txt rows=30 cols=100><?php @include($file_txt);?></textarea><br><br>
<input type=submit name=otp value=Сохранить>
</form>
<h1>Вы в админке<br><a href="../index.php?p=exit">ВЫЙТИ</a></h1>
</body>
</html>

Итак, после удачной авторизации, администратор увидит элемент textarea, с содержимым файла настроек "../config/config.ini" и возможностью их отредактировать. После внесения необходимых правок, он может выйти из кабинета, нажав на ссылку ВЫЙТИ.

Файл настроек

Создадим папку config в корне сайта и в ней два файла .htaccess и config.ini В .htaccess запретим внешний доступ к файлу config.ini, хотя это и необязательно, ведь в нем не будет секретных сведений:

<Files ~ "\.ini$">
 Order allow,deny
 Deny from all
</Files>

И в файле настроек config.ini мы должны описать переменные, которые хотим изменять на сайте, для примера я приведу самые динамичные:

; цена с доставкой - это комментарий для администратора, ниже сама переменная и ее значение
cena1 = "1200 рублей"

; цена без доставки
cena2 = "999 рублей"

; услуги курьера
cena3 = "300 рублей"

;Телефоны
phone = "+7 495 0123456"
phone2 = "+7 495 654321"

;E-mail
pochta = "[email protected]"
;Физический адрес
adress = "г. Москва, ул. Нахимова..."

Переменные на сайте

И последний этап - внедрить все данные (переменные) из файла настроек в шаблон сайта (лендинг). Для этого открываем главный файл своего лендинга (обычно это index.php в корневой директории сайта) обычным текстовым блокнотом и в самом вверху подключаем файл конфигурации:

<?php
$ini = parse_ini_file('./config/config.ini');
?>

Теперь в необходимых местах сайта, мы можем вывести значения переменных. Наши цены из файла настроек будут выглядеть так:

<?php print $ini['cena1'];?>
<?php print $ini['cena2'];?>
<?php print $ini['cena3'];?>

Вместо телефонов на сайте пишем:

<?php print $ini['phone'];?>
<?php print $ini['phone2'];?>

Вместо адреса электронной почты

<?php print $ini['pochta'];?>

Вместо физического адреса:

<?php print $ini['adress'];?>

Разумеется, в файл настроек вы можете прописать столько переменных, сколько необходимо изменять впоследствии. Слишком дотошные, могут перенести в переменные хоть и все текстовое содержимое лендинга. На практике же целесообразно в файл настроек вынести наиболее динамичные данные с сайта, те текстовые данные, которые рано или поздно придется менять.

Если вы еще чего-то ожидали, то на этом все! Урок по созданию админки для лендинга объявляю закрытым! Прошу прощения за отсутствие картинок - иллюстрировать собственно нечего. Внешний вид административной части (если он нужен), надеюсь, каждый осилит собственными силами. У кого какие проблемы возникли в процессе  - пишем в комментариях.

 

Оцените материал:
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (20 голоса, рейтинг: 4,60 из 5)
Загрузка...

Вячеслав - типичный интернетчикВячеслав Скоблей (ака files) - типичный интернетчик. Скитаюсь интернетом, пишу на PHP, увлекаюсь созданием веб-сайтов на Wordpress, решаю многочисленные проблемы, которые до появления интернета не существовали...

Специализируюсь на безопасности сайтов: защищаю сайты от атак и взломов, занимаюсь лечением вирусов на сайтах и профилактикой...

Наверняка у Вас есть вопросы, просьбы или пожелания. Не стесняйтесь спросить, я отвечаю всегда быстро...

12 комментарий

  1. красноярск says:

    Ща попробуем! А как сделать: Чтобы можно было видеть в админке товар и отслеживать его статус, ну и личный кабинет у клиента?

  2. Владимир says:

    Спасибо очень интересный урок. Жду с нетерпением новых мануалов )

  3. Ислам says:

    А что делать если шаблон сайта на HTML

  4. Ислам says:

    У меня не работает, как быть если не index.php a index.html???

    1. Иван says:

      Переделать index.html в index.php

  5. Иван says:

    как в админке:
    1) вывести переменные по отдельности
    2) запретить в админке менять сами переменные, разрешить изменение значения переменных

  6. Дмитрий says:

    Здравствуйте. Не сохраняются изменения в админке. После нажатия "сохранить" всё возвращается к первоначальному виду, как в примере

    1. Вячеслав Скоблей says:

      Неверно указаны пути к файлам... Недостаточно прав на перезапись файла... Причин может быть много, надо смотреть консоль, включать логирование и т.д.

  7. vv says:

    spasibo za urok
    skajite kak dobavit formi s kartinkakami?

  8. Дмитрий says:

    Спасибо! как всегда то, что нужно)
    Только у меня при сохранении изменений через "админку" выскакивает ошибка (Warning: Cannot modify header information - headers already sent by (output started at /home/host1442078/oknagrad69.ru/htdocs/test/admin/index.php:34) in /home/host1442078/oknagrad69.ru/htdocs/test/admin/index.php on line 42)
    Но все данные сохраняются.

    1. Вячеслав Скоблей says:

      Чтобы не углубляться в ошибку (она не критичная), можете выключить отображение ошибок php (в самом начале admin/index.php):

      ini_set('display_errors','On');
      error_reporting('E_ALL');
      1. Дмитрий says:

        Подскажите, а что нужно сделать, чтобы после нажатия на кнопку "Сохранить" отображалось сообщение "Сохранено", например?

        А то сейчас просто белый экран отображается, неудобно, можно было бы сделать надпись Сохранено и ссылку на лендинг, например.

Добавить комментарий

Ваш адрес email не будет опубликован.