Как создать какбинет администратора для сайта

Автор работы: Пользователь скрыл имя, 14 Ноября 2013 в 09:42, доклад

Описание работы

Начало - первый шаг в создании управляемого сайта - подключение к Базе Данных (БД)
Тексты наших страниц мы будем хранить в базе данных. Почему не в файлах? Да потому что MySQL гораздо удобнее и проще, чем текстовые файлы! А если еще подумать о том, что БД еще и функциональнее, то все вопросы отпадут. Итак, наша первая задача - создать пользователя БД и саму базу. Заходим в нашу панель управления на хостинге, выбираем пункт меню "Управление пользователями MySQL" и жмем "Добавить", вводим описание "пользователь админки" и жмем еще раз на кнопку "Добавить".

Файлы: 1 файл

как создать админку.docx

— 72.26 Кб (Скачать файл)

Начало - первый шаг  в создании управляемого сайта - подключение  к Базе Данных (БД)

Тексты наших страниц  мы будем хранить в базе данных. Почему не в файлах? Да потому что  MySQL гораздо удобнее и проще, чем текстовые файлы! А если еще подумать о том, что БД еще и функциональнее, то все вопросы отпадут. Итак, наша первая задача - создать пользователя БД и саму базу. Заходим в нашу панель управления на хостинге, выбираем пункт меню "Управление пользователями MySQL" и жмем "Добавить", вводим описание "пользователь админки" и жмем еще раз на кнопку "Добавить". Пользователь создан, запоминаем имя пользователя(dbuser) и пароль(password), они нам скоро понадобятся. Жмем "Далее" и в следующем окне "Назад". Дальше создаем БД. Для этого заходим в "Управление базами данных MySQL" и нажимаем "Добавить", в описании пишем "админка" и жмем еще раз на "Добавить". База данных(dbname) создана. Запоминаем имя БД и жмем "Далее" и в следующем окне "настроить". Тут добавляем ранее созданного пользователя и можем идти перекурить/попить чаю! Первый шаг выполнен ;-) Хотя, нет. Давайте еще немножко потрудимся, не так много то и сделали. Итак заходим на FTP нашего сайта и создаем папку 'inc'. На хостинге от PeterHost создаем ее в директории '/www/site1/public_html/'. Как Вы понимаете, раз уж мы создали папку, значит в нее надо что-то записать! Этим что-то будет файл connect.php, который будет содержать настройки подключения к БД. Код этого файла следующий:

 

<?php /*этой строкой говорим, что пхп код начался.

В дальнейшем будем  писать проще: "<?", т.к.

наш хостинг  позволяет делать упрощенную запись.*/

$link = mysql_connect('dbhost', 'dbuser', 'password') or die("Не могу соединиться");

mysql_select_db('dbname', $link);

// а в последней  строке мы укажем, что пхп код закончился

?>

 

Описание необходимых  данных для второй и третьей строки я возьму непосредственно с сайта  PeterHost:

  • dbhost: mysql.доменное_имя_сайта
  • Хост (адрес mysql-сервера) для подсоединения к базе данных. Например, если доменное имя сайта mysite.ru, то для соединения с mysql-сервером нужно указывать имя mysql.mysite.ru.
  • В качестве доменного имени сайта можно использовать техническое доменное имя сайта.
  • dbname: db_username_N
  • имя базы данных MySQL из принадлежащих Вашему аккаунту (можно посмотреть список баз данных в панели управления)
  • dbuser: dbu_username_N
  • имя субпользователя MySQL, которому присвоены права на соответствующую базу данных
  • password: пароль
  • пароль субпользователя базы данных, можно посмотреть в панели управления

 

Статья вторая: Создание Базы Данных (БД)

 

Для удобства управления базой  данных MySQL создана программа PhpMyAdmin. На примере нашего хостинга, мы попадаем в нее из пункта меню WEBSQL. Нажав кнопку войти, мы увидим дружественный интерфейс интересующей нас программы. В левом фрейме выбираем интересующую нас БД в выпадающем списке, потом нажимаем на появившееся название нашей БД и после этого выбираем пункт меню SQL. В окне для ввода запросов пишем:

 

CREATE TABLE `pages` (

`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,

`body` TEXT NOT NULL

) TYPE = MYISAM ;

 

Ну, и нажимаем на кнопочку "Пошел". Наша таблица pages создана! В первое поле (id) будем записывать идентификаторы, а говоря проще номера наших страниц. Поэтому поле id числовое (INT), беззнаковое, т.е. не имеет отрицательных значений(UNSIGNED) и, самое интересное - это поле при каждой новой записи самостоятельно увеличивается на единичку(AUTO_INCREMENT).

Второе поле(body) в нашей табличке текстовое, в него в общем то мы и будем записывать данные наших страничек.

 

 

Создаем файл index.php

 

Теперь возвращаемся к FTP и создаем папку 'adm' и переходим к самой сложной и главной задаче - создаем файл index.php, который будет ключевым в нашей админке. Не ищем легких путей и делаем все очень сложно. Поехали.

Пишем нашу первую функцию  на php:

 

<?

function show_form(){

        // подключаем файл с настройками  подключения к БД 

        require '../inc/connect.php';

 

        //делаем запрос к БД, на данный момент на следующие две строчки не стоит обращать внимание, объясню их потом, поскольку на данном этапе они еще не используются.

        $result = mysql_query("SELECT * FROM pages WHERE id = '".$_GET['id']."';", $link);

        $row = mysql_fetch_array($result);

?>

<!-- далее идет обычный HTML -->

<form action="" method="post">

<table cellspacing="1" cellpadding="2" bgcolor="#1F2760">

<tr bgcolor="#B0ADC3">

  <td><p>Текст страницы</p></td>

</tr>

<tr bgcolor="#ffffff">

  <td>

      <textarea name="body" rows="20" cols="59" class="enter">

                <?// "<?=" тоже самое, что и "<? echo", т.е. вывод на экран, что выводим объясню позже ;-) ?>

                <?=stripslashes($row['body']);?>

      </textarea>

  </td>

</tr>

<tr>

  <td bgcolor="#1F2760" align="right">

      <input type="hidden" name="id" value="<?=$_GET['id'];?>">

      <input type="submit" value="отправить" name="edit">

  </td>

</tr>

</table>

</form>

<?php

} // функция закончилась 

 

// теперь запустим  нашу функцию 

show_form();

?>

 

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

 

<?

function complete(){

      // подключаем файл с настройками  подключения - это мы уже знаем. 

      require '../inc/connect.php';

 

      // делаем запрос к БД в котором пытаемся вытащить страничку с указаным id. На данный момент мы не сделали еще ни одной страницы, посему запрос вернет пустой ряд.

      $result = mysql_query("SELECT * FROM pages WHERE id = '".$_POST['id']."';", $link);

 

      // перекидываем данные из MySQL в пхпшный ассоциативный массив

      $row = mysql_fetch_array($result);

 

      // проверяем не пуст ли элемент массива id. Если пуст, значит вставляем наши данные в БД

      if(empty($row['id']))

            $query = "INSERT INTO pages (body) VALUES ('".mysql_real_escape_string($_POST['body'])."'

)";

      // а вот если не пуст, значит с этим id уже есть запись и в данном случае мы ее просто отредактируем

      else

            $query = "UPDATE pages SET

                                     body = '".mysql_real_escape_string($_POST['body'])."'

                     WHERE id = '".$_POST['id']."';";

 

      // непосредственно записываем наши данные в базу (до этого мы просто описывали, что надо сделать, а теперь делаем)

      mysql_query($query, $link);

 

      // ну и просто выводим крикливую надпись, что скрипт отработал

      echo '<h3>Данные обновлены</h3>';

 

}

// если была  нажата кнопочка "отправить", которая  именуется edit - тогда вызываем функию complete()

if($_POST['edit']) complete();?>

?>

 Теперь наш  файл index.php, который лежит на сервере в папке 'adm' выглядит так:

<?

function show_form(){

        // подключаем файл с настройками  подключения к БД 

        require '../inc/connect.php';

 

        //делаем запрос к БД, на данный момент на следующие две строчки не стоит обращать внимание, объясню их потом, посокльку на данном этапе они еще не используются.

        $result = mysql_query("SELECT * FROM pages WHERE id = '".$_GET['id']."';", $link);

        $row = mysql_fetch_array($result);

?>

<!-- далее идет обычный HTML -->

<form action="" method="post">

<table cellspacing="1" cellpadding="2" bgcolor="#1F2760">

<tr bgcolor="#B0ADC3">

  <td><p>Текст страницы</p></td>

</tr>

<tr bgcolor="#ffffff">

  <td>

      <textarea name="body" rows="20" cols="59" class="enter">

                <?// "<?=" тоже самое, что и "<? echo", т.е. вывод на экран, что выводим объясню позже ;-) ?>

                <?=stripslashes($row['body']);?>

      </textarea>

  </td>

</tr>

<tr>

  <td bgcolor="#1F2760" align="right">

      <input type="hidden" name="id" value="<?=$_GET['id'];?>">

      <input type="submit" value="отправить" name="edit">

  </td>

</tr>

</table>

</form>

<?php

} // функция show_form() закончилась

 

function complete(){

      // подключаем файл с настройками  подключения - это мы уже знаем. 

      require '../inc/connect.php';

 

      // делаем запрос к БД в котором пытаемся вытащить страничку с указаным id. На данный момент мы не сделали еще ни одной страницы, посему запрос вернет пустой ряд.

      $result = mysql_query("SELECT * FROM pages WHERE id = '".$_POST['id']."';", $link);

 

      // перекидываем данные из MySQL в пхпшный ассоциативный массив

      $row = mysql_fetch_array($result);

 

      // проверяем не пуст ли элемент массива id. Если пуст, значит вставляем наши данные в БД

      if(empty($row['id']))

            $query = "INSERT INTO pages (body) VALUES ('".mysql_real_escape_string($_POST['body'])."'

)";

      // а вот если не пуст, значит с этим id уже есть запись и в данном случае мы ее просто отредактируем

      else

            $query = "UPDATE pages SET

                                     body = '".mysql_real_escape_string($_POST['body'])."'

                     WHERE id = '".$_POST['id']."';";

 

      // непосредственно записываем наши данные в базу (до этого мы просто описывали, что надо сделать, а теперь делаем)

      mysql_query($query, $link);

 

      // ну и просто выводим крикливую надпись, что скрипт отработал

      echo '<h3>Данные обновлены</h3>';

}

show_form();

// если была  нажата кнопочка "отправить", которая  именуется edit - тогда вызываем функию complete()

if($_POST['edit']) complete();

?>

 

 Заливаем на сервер, запускаем в браузере наш файл, пишем в форму любой текст,  отправляем данные, заходим в  websql, нажимаем обзор и радуемся! Но и на этом пока рано останавливаться. Можно перекурить, либо попить чайку и скорее-скорее продолжить написание нашего файла. Уже через 10 минут Вы можете увидеть, что простейшая админка готова! Итак, добавляем функцию, которая позволит видеть какие странички есть у нас в базе:

 

<?function show_pages() {

        require '../inc/connect.php';

        echo '

<table cellspacing="1" cellpadding="2" bgcolor="#1F2760">

<tr bgcolor="#B0ADC3">

  <td>

     <a href="?id=new">Добавить страницу</a>

  </td>

</tr>

</table>';

        echo '

<table cellspacing="1" cellpadding="2" bgcolor="#1F2760">

<tr bgcolor="#B0ADC3">

  <td>

     <b>Номер страницы</b>

  </td>

</tr>';

        $result = mysql_query("SELECT * FROM pages ORDER BY id;", $link);

        while($row = mysql_fetch_array($result)){

               echo '

<tr bgcolor="#ffffff">

  <td>

     <a href="?id='.$row['id'].'">'.$row['id'].'</a>

  </td>

</tr>';

        }

        echo '

</table>';

 

}

 

// функция настолько  простая, что мне даже и объяснять  там нечего. Опять идет обычный  html, в котором встречается запрос к БД, в котором мы просим вывести все наши записи отсортировав их по id. Соответственно, каждый полученный из базы id мы выводим ссылкой, чтобы в него можно было зайти. Короче, ща запустим и будет все понятно ;-)

Информация о работе Как создать какбинет администратора для сайта