עברית Русский
 
Разработка и создание сайта в Израиле
Сайты для бизнесаСоздание сайтаМастер-классРаскрутка сайтаПрограммирование Гостевая книгаКонтакт
 Читайте в разделе
Как работает сайт
ЧеловекоПодобные Урлы
Свой маленький портал на PHP
Пишем простую CMS
Скрипт карты сайта
Уроки PHP: первая программа
Уроки PHP: переменные
 Новости сайта
Создание сайта в Израиле на русском языке для тех, кто всерьез подумывает о создании и развитии своего сайта в Израиле.

Оптимизация страниц под Google - cтатья в разделе Мастер-класс, в которой рассказывается о новой возможности CMS "Столица"- автоматического обновления карты сайта, необходимой для корректного индексирования страниц.

Cайт- это визитка вашего бизнеса! Будете оспаривать?

Добро пожаловать в Виртуальный Город - Столицу нашего мега -портала!

100 лиц Столицы - литературно-художественный портал о Иерусалиме и его жителях.

Онлайн-библиотека с более, чем 37 000 книг!

Виртуальный музей - более 10 000 репродукций шедевров мировой живописи!

Прогулки по Булгаковскому Иерусалиму и многое-многое другое!

Мы рекомендуем HostNika - самый лучший хост для вашего сайта

Туристический оператор "Rejwan" - это десятки различных туров по Израилю с посещением уникальных природных и исторических заповедников нашей страны.

Сайт "Rejwan" создан на базе CMS "Столица".



PHP и MySQL - пишем свою CMS

Часть 1. Запись в таблицы базы данных MySQL

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

Если вы не писали программ на языке PHP с поддержкой MySQL, то лучше всего начать работу не на удаленном хосте, а на локальном. Скачайте с сайта http://www.denwer.ru/ дистрибутив "Денвер", установите его у себя на компьютере, и можете приступать к делу!

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

Запустим локальный хост и создадим с помощью phpMyAdmin базу данных с именем simple_cms, а в ней - таблицу pages с двумя полями title и content. Для этого войдите в раздел SQL на панели phpMyAdmin  и выполните такой запрос:

CREATE TABLE `pages` (
   `title` varchar(100) NOT NULL default '',
   `content` text NOT NULL
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

и phpMyAdmin построит вам эту таблицу.

Маленькое отступление:

если вы знакомы с базами данных хотя бы на уровне Microsoft Access, то вы помните, что каждое поле таблицы имеет ряд свойств. В данном случае мы присвоили полю content свойство text. Казалось бы, логично, ведь оно и предназначено для хранения текстов. Но следует помнить, что размер этого поля ограничен, поэтому, если вы хотите сохранить в нем текст "Войны и мира", то лучше определить его как longtext.

Таблица базы данных - pages

title content
 

 

Чтобы управлять такой таблицей из админки, нам понадобится форма, состоящая из простого текстового поля (input type="text") для ввода заголовка, текстовой области (textarea) для ввода содержимого и кнопка "Отправить" (input type="submit"). 

Примерно так может выглядеть в нашей админке панель управления содержимым страниц.

Введите заголовок страницы Введите текст 

 

   

Поместим эту форму в файл page.php

page.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Моя первая CMS</title>
</head>
<? include ('config.php'); ?>
<body>
<form action="admin.php" method="post">
<table border="1" align="center">
  <tr>
    <td>Введите заголовок страницы</td>
    <td>Введите текст</td>
  </tr>
  <tr>
    <td valign="top"><input name="my_title" type="text" size="50" /></td>
    <td valign="top"><textarea name="my_text" cols="60" rows="30" >&nbsp;</textarea></td>
  </tr>
</table>
<div align="center">
<input name="send" type="submit" value="Отправить" />
</div>
</form>
</body>
</html>

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

config.php

<?
$dblocation = "localhost";
$dbuser = "root";
$dbpasswd = "";
$dbname="simple_cms";

//Подключение к базе данных 
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) // Если дескриптор равен 0 соединение не установлено
 {
 echo("<p>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</p>");
 exit();
 }

if (!@mysql_select_db($dbname, $dbcnx))
 {
 echo( "<p>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</p>" );
 exit();
 }
?>

Теперь, когда у нас появилось подключение к базе данных и скрипт для ввода в нее нужной информации, остается организовать отправку туда содержимого текстового поля с именем my_title и текстовой области my_text. С этой целью мы определили в форме метод POST для передачи данных файлу admin.php - <form action="page.php" method="post">.
 

Когда администратор внесет в поля формы информацию и нажмет кнопку "Отправить", этот метод присвоит переменной $_POST['my_title'] значение текстового поля my_title, а переменной $_POST['my_text'] - значение текстовой области my_text.

Чтобы удостовериться в этом, добавим небольшой код в начало файла page.php:  

   

<? include ('config.php');

<body>

<? print  $_POST['my_title'].'<br />'.$_POST['my_text'];?>

Запустим файл page.php. Если в программе нет ошибок, то вы увидите ваш заголовок и текст в окне броузера.

Прекрасно! Осталось только организовать запись этой информации в нашу базу данных. Для этого нам придется обратиться к языку запросов SQL, а точнее - к MySQL.

Чтобы записать новые данные в таблицу базы данных, которая благодаря функции

$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);

уже подключена к работе, нам следует использовать оператор INSERT языка MySQL. Чтобы не загромождать код страницы, вставьте этот фрагмент в файл page.php вместо кода вывода на печать:

if ($send)
   $sql = mysql_query("INSERT  into pages (title, content) values ('".$_POST['my_title']."', '".$_POST['my_text']."');");

То есть, если от кнопки "Отправить" методом POST был передан $send (см. name этой кнопки!), то должен выполниться данный запрос (функция mysql_query), и в таблицу базы данных будет записано содержимое полей формы.

Запись эта поначалу кажется трудной для чтения, и в ней можно просто запутаться во многочисленных простых и двойных кавычках. Поэтому  рассмотрим ее в "чистом виде".

Параметром функции  mysql_query();  является сам SQL-запрос, который можно представить в виде:

INSERT  into pages (title, content) values ('значение_переменной_1', 'значение_переменной_2');

Так оно, вроде, понятнее ...

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

В окончательном виде файл page.php должен выглядеть так:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Моя первая CMS</title>
</head>
<? include ('config.php');
if (@$send)
   $sql = mysql_query("INSERT  into pages (title, content) values ('".$_POST['my_title']."', '".$_POST['my_text']."');");
?>
<body>
<form action="page.php" method="post">
<table border="1" align="center">
  <tr>
    <td align="center">Введите заголовок страницы</td>
    <td align="center">Введите текст</td>
  </tr>
  <tr>
    <td valign="top"><input name="my_title" type="text" size="50" /></td>
    <td valign="top"><textarea name="my_text" cols="80" rows="30" >&nbsp;</textarea></td>
  </tr>
  <tr>
    <td  colspan="2" align="center"><input name="send" type="submit" value="Отправить" /></td>
  </tr> 
</table>
</form>
</body>
</html>

 

Страница 1 из 4
Назад
Вперед
Rambler's Top100