Вторник, 08.07.2025, 00:50
Приветствую Вас Гость

ДИЗАЙН - СТУДИЯ "ВИКТОРИЯ"

Главная » Статьи » Програмирование » Цикл статей CMS своими руками

Код админки на PHP+MySQL
Структура таблицы `pages`:
CREATE TABLE `pages` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `body` text NOT NULL,
  `title` varchar(255) NOT NULL default '',
  `metatitle` varchar(255) NOT NULL default '',
  `metakeywords` varchar(255) NOT NULL default '',
  `metadescription` text NOT NULL,
  `sortirovka` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
Код файла подключеня к базе данных - 'inc/connect.php':
//этой строкой говорим, что пхп код начался. В дальнейшем будем писать проще: "$link = mysql_connect('dbhost', 'dbuser', 'password') or die("Не могу соединиться");
mysql_select_db('dbname', $link);
// а в последней строке мы укажем, что пхп код закончился
?>
Код файла админки - 'adm/index.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>Название страницы (title)</p>
  </td>
</tr>
<tr bgcolor="#ffffff">
  <td>
     <input type="text" name="title" value="(stripslashes($row['title']));?>" class="enter" size="79">
  </td>
</tr>
<tr bgcolor="#B0ADC3">
  <td>
     <p>Заголовок страницы (Meta - title)</p>
  </td>
</tr>
<tr bgcolor="#ffffff">
  <td>
     <input type="text" name="metatitle" value="(stripslashes($row['metatitle']));?>" class="enter" size="79">
  </td>
</tr>
<tr bgcolor="#B0ADC3">
  <td>
     <p>Ключевые слова (Meta - keywords)</p>
  </td>
</tr>
<tr bgcolor="#ffffff">
  <td>
     <input type="text" name="metakeywords" class="enter" size="79" value="(stripslashes($row['metakeywords']));?>">
  </td>
</tr>
<tr bgcolor="#B0ADC3">
  <td>
     <p>Описание (Meta - description)</p>
  </td>
</tr>
<tr bgcolor="#ffffff">
  <td>
     <input type="text" name="metadescription" class="enter" size="79" value="(stripslashes($row['metadescription']));?>">
  </td>
</tr>
<tr bgcolor="#B0ADC3">
  <td><p>Текст страницы</p></td>
</tr>
<tr bgcolor="#ffffff">
  <td>
      <textarea name="body" rows="20" cols="59" class="enter">
                // "?>
                ($row['body']);?>
      </textarea>
  </td>
</tr>
<tr>
  <td bgcolor="#1F2760" align="right">
      <input type="hidden" name="id" value="['id'];?>">
      <input type="submit" value="отправить" name="edit">
  </td>
</tr>
</table>
</form>
} // функция 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,
                      title,
                      metatitle,
                      metakeywords,
                      metadescription)
                                      VALUES
                            ('"
.mysql_real_escape_string($_POST['body'])."',
                             '"
.mysql_real_escape_string($_POST['title'])."',
                             '"
.mysql_real_escape_string($_POST['metatitle'])."',
                             '"
.mysql_real_escape_string($_POST['metakeywords'])."',
                             '"
.mysql_real_escape_string($_POST['metadescription'])."')";
      
// а вот если не пуст, значит с этим id уже есть запись и в данном случае мы ее просто отредактируем
      
else
            
$query = "UPDATE pages SET
                                     body = '"
.mysql_real_escape_string($_POST['body'])."',
                                     title = '"
.mysql_real_escape_string($_POST['title'])."',
                                     metatitle = '"
.mysql_real_escape_string($_POST['metatitle'])."',
                                     metakeywords = '"
.mysql_real_escape_string($_POST['metakeywords'])."',
                                     metadescription = '"
.mysql_real_escape_string($_POST['metadescription'])."'
                     WHERE id = '"
.$_POST['id']."';";

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

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

Данные обновлены

'
;
}
function
show_pages() {
// добавляем javascript, который позволит перед удалением спросить пользователя, уверен ли он в этом.
?>
<script language='JavaScript1.1' type='text/javascript'>
<!--
function Delete(N)
{
     if(confirm("Удалить запись?"))
     {
                 parent.location='?del='+N;
     }
     else
     {
       return false;
     }
}
-->
</SCRIPT>
        require '../inc/connect.php';
        echo
'


  


     Добавить страницу
  
'
;
        echo
'


  
';
        
$result = mysql_query("SELECT * FROM pages ORDER BY id;", $link);
        while(
$row = mysql_fetch_array($result)){
               echo
'

  

  

';
        
// добавили ячейку с ссылкой на удаление и не забыли вставить colspan="2" у заглавной ячейки
         // думаю вы заметили, что в тексте ссылки мы заменили $row{'id'] на $row['title'] и добавили обработку функцией stripslashes()
        
}
        echo
'

     Название страницы
  

     '.stripslashes($row['title']).'
  

     удалить
  
';

}
function
delete_pages(){
        require
'../inc/connect.php';
        
$query = "DELETE FROM pages WHERE id = '".$_GET['del']."';";
        
mysql_query($query, $link);
        echo
'

Данные удалены

'
;
}
if(
$_GET['del']) delete_pages();
if(
$_POST['edit']) complete(); // если была нажата кнопочка "отправить", которая именуется edit - тогда вызываем функию complete()
if($_GET['id']) show_form(); // если мы нажали на ссылку в функции show_pages(), то значит мы передали в переменную $_GET['id'] тот самый id, который нас интересует. Поэтому в этом слчае вызываем форму редактирования нашей странички.
else show_pages(); // ну, а если мы не выбрали определенный id - запускаем нашу функцию выбора id.
?>
и файл вывода 'index.php':
        require 'inc/connect.php';

        
//htmlspecialchars() Преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались.
        
$_GET['id'] = htmlspecialchars($_GET['id']);

        
// если у нас не запрашивали никакую определенную страницу, то будем выводить нашу самую первую. Если Вы ее давно удалили, поставьте вместо единички идентификатор той странички, которую Вы хотели бы грузить по умолчанию
        
if(empty($_GET['id'])) $_GET['id'] = 1;
        
$result = mysql_query("SELECT * FROM pages WHERE id = '".$_GET['id']."';", $link);
        
$row = mysql_fetch_array($result);
?>
<html>
<head>
  <title>['metatitle'];?></title>
  <META NAME="description" CONTENT="(stripslashes($row['metadescription']));?>">
  <META NAME="keywords" CONTENT="(stripslashes($row['metakeywords']));?>">
</head>
<body>
// меню из БД
echo 'Наше меню: ';
        
$resultMenu = mysql_query("SELECT * FROM pages ORDER BY id;", $link);
        
$rowMenu = mysql_fetch_array($resultMenu); // выведем первый пункт меню без точечки
        
echo '['.stripslashes($rowMenu['title']).']';
        while(
$rowMenu = mysql_fetch_array($resultMenu)){
               echo
' · ['.stripslashes($rowMenu['title']).']';
        }
?>
<!-- либо делаем меню ручками, по принципу: -->
<a href="?id=1">первая страница</a>
<a href="?id=2">вторая страница</a>
<a href="?id=3">контакты</a><br /><br />
//stripslashes() - Удаляет экранирование символов - а их мы понаставили в админке, когда загружали данные в базу с помощью функции mysql_real_escape_string()?>
($row['body']);?>
</body>
</html>
Категория: Цикл статей CMS своими руками | Добавил: admin (15.04.2008)
Просмотров: 65449 | Комментарии: 149 | Рейтинг: 4.0/2 |
Всего комментариев: 1081 2 3 ... 10 11 »
108 DomoLietRaneunsem  
0
Доброго дня, посетители сайта!
Взгляните на симпатичный вебсайт: http://1koreaclub.ru/ - киа в Медведково. Затем hyundai в Алтуфьево И наконец хендай в СВАО.
Тема ресурса http://1koreaclub.ru/stati/item/16-remontiruem-kia-v-svao - ремонтируем киа в СВАО.
Всем нам удачи в Интернете.
Тимур

107 Mipinsink  
0
Привет, господа посетители сети!
Посмотрите симпатичный проект: http://vsporta.ru Идея ресурса персональный тренер в митино.
Тема сайта http://www.vsporta.ru/content/stati/udobnyj-fitnes-v-strogino - фитнес центр в митино. - Кажется неплохо.
Пусть у Вас все будет хорошо, дорогие друзья.
Стас

106 Дело для грузоперевоз  
0
Содержание текст Содержание текст Содержание текст Содержание текст Содержание текст Содержание текст Содержание текст Сюжет текст Фабула текст Иждивение текст Содержание текст Тема текст Тема текст Тема текст Иждивение текст Довольствие текст Сюжет текст Кошт текст Тема текст Питание текст Содержание текст Содержание текст Жизнь текст Сюжет текст Сущность текст Тема текст грузоперевозки

105 Хорошая статья по теме  
0
Здесь интересная запись по теме:
http://pribor-komplekt.ru/catalog/tokovye-kleshchi/

104 Помотите определиться с ценой  
0
Добрый день
Хочу продать свой старый стационарный компьютер, т.к. купил себе планшетник. Компьютер в отличном состоянии, ему 2 года, включался 5-6 раз в неделю для просмотра погоды, в общем использовался слабо. Из инструкции характеристики такие: оперативка 2гб, двух ядерный процессор и 100 гигабайт памяти на жестком диске. В компьютерах разбираюсь плохо и поэтому не могу самостоятельно определить стоимость. Друг хочет купить у меня его за 2500р. и говорит что этот компьютер и этого еле стоит, потому что такие компьютеры уже не ценятся, а ценятся переносные. Возможно он немного обманывает или так и есть? Просто я его покупал за 17000р. в магазине, а тут он так сильно подешевел.

103 Unexpected pics  
0
private pics:
http://fashion.blognet.pw/?patrice
Always different pics

102 дівчатка  
0
Сучасні дівчата сайті:
http://prettygirls.blognet.pw/?sophia
  Сучасні фотографії кожного разу , коли

101 Bobchicyirott  
0
Хай я отыскал где можно [url=http://utorrrent.ru/]Скачать программу utorrent

100 DooniLiajobby  
0
avtomarket.by

99 SvetaVeri  
0
интернет знакомства без регестрации
http://www.forum.poland-export.pl/user-32137.html

интернет знакомства белова
http://sepanta-gsm.ir/Forum/User-lusiuyre--24814

интернет порно знакомства бесплатно
http://good3gp.ru/user/Lusiuyre/

интернет знакомства сургут
http://forum.fesch.at/profile.php?mode=viewprofile&u=600434

интернет знакомства ангарск
http://www.johan-petersson.com/phpBB2/profile.php?mode=viewprofile&u=144489

интернет знакомства белова
http://bssh2.bizhbulyak.ru/user/Lusiuyre/

интернет знакомства онлайн
http://spalny.com/user/Lusiuyre/

интернет знакомства meet
http://www.royaume-de-camelot.com/C%40m3lot/profile.php?mode=viewprofile&u=1887

интернет знакомства онлайн без смс
http://www.hdtv.com.pl/forum/members/lusiuyre.html

чувашия интернет знакомства
http://www.gearzandbeers.com/forum/member.php?1753-Lusiuyre

бесплатные интернет знакомства в перми

1-10 11-20 21-30 ... 91-100 101-108
Имя *:
Email *:
Код *:
Категории каталога
PHP [0]
Советы по PHP
CSS [1]
Статьи по CSS
Java [0]
Java
MySQL [4]
MySQL
Цикл статей CMS своими руками [8]
Админка сайта на php + MySQL - создание управляемых сайтов
Поиск
Друзья сайта
Статистика
Наш опрос
Оцените мой сайт
Всего ответов: 36