Автор работы: Пользователь скрыл имя, 14 Ноября 2013 в 09:42, доклад
Начало - первый шаг в создании управляемого сайта - подключение к Базе Данных (БД)
Тексты наших страниц мы будем хранить в базе данных. Почему не в файлах? Да потому что MySQL гораздо удобнее и проще, чем текстовые файлы! А если еще подумать о том, что БД еще и функциональнее, то все вопросы отпадут. Итак, наша первая задача - создать пользователя БД и саму базу. Заходим в нашу панель управления на хостинге, выбираем пункт меню "Управление пользователями MySQL" и жмем "Добавить", вводим описание "пользователь админки" и жмем еще раз на кнопку "Добавить".
Начало - первый шаг в создании управляемого сайта - подключение к Базе Данных (БД)
Тексты наших страниц мы будем хранить в базе данных. Почему не в файлах? Да потому что 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:
Статья вторая: Создание Базы Данных (БД)
Для удобства управления базой данных 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($
)";
// а вот если не пуст, значит с этим id уже есть запись и в данном случае мы ее просто отредактируем
else
$query = "UPDATE pages SET
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($
)";
// а вот если не пуст, значит с этим id уже есть запись и в данном случае мы ее просто отредактируем
else
$query = "UPDATE pages SET
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'].'">'.$
</td>
</tr>';
}
echo '
</table>';
}
// функция настолько
простая, что мне даже и
Информация о работе Как создать какбинет администратора для сайта