PHP. Динамическое создание страниц. Динамические страницы в PHP Php создать страницу в странице



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

О PHP скажу коротко - этот язык программирования используется по всему миру и на нём можно создавать сайты всех уровней сложности, от сайтов-визиток до крупных порталов. Думаю, уже для многих не секрет, что крупнейшие социальные сети facebook.com (с нуля на php) и vk.com (движок на php) были написаны на языке PHP. Так что делаем выводы и начинаем работу!)

Принцип работы кода

Код PHP отрабатывается на стороне сервера . То есть готовой страницы нет. Например, в коде дана команда собрать данные о том, сколько пользователей зарегистрировано на данный момент на сайте. Посетитель сайта нажимает на ссылку все пользователи . Он хочет получить динамические данные , то есть те, которые постоянно изменяются. После того, как подсчёт на сервере будет закончен, с сервера придут данные в виде сгенерированного HTML-кода страницы с количеством пользователей. В результате, после клика-запроса по ссылке, пользователь получает страницу. Если просмотреть код полученной страницы, то можно увидеть только HTML, а PHP-код будет недоступен для просмотра. Грубо говоря, PHP - это указания серверу по тому, как и из каких блоков сделать страницу.

Как выглядит PHP код и куда его вставлять?

PHP-код можно внедрять непосредственно в HTML. PHP-код встраивается в HTML-страницы при помощи угловых скобок и знака вопроса , однако можно ограничиться скобками со знаками вопроса . Нужно будет только изменить расширение файла, например, с .html на .php

Код PHP (файл index.php )



Пример использования PHP


echo "Привет, мир!";
?>



Демонстрация Скачать исходники
Результатом работы кода будет вывод обычного текста Привет, Мир! . Спросите зачем писать код php, чтобы вывести обычный текст? Оператор echo , о котором поговорим чуть позже, нужен не просто для вывода текста. Чаще echo используют для отображения результата работы какой-то функции, которая производила подсчёт или брала данные из БД (Что такое База данных?). То есть для отображения динамических данных .

Оператор echo в PHP

Как Вы уже поняли, оператор echo нужен для вывода данных. Содержимое (в нашем случае пока только текст) берём в кавычки , а в конце ставим точку с запятой ; это обозначает конец работы оператора.

В программирование при создании первой страницы принято употреблять фразу Hello, World! - то есть Привет, мир! Именно её и используем. В примере не будем использовать html, так как это не обязательно.

Код PHP

echo "Привет, Мир!";
?>
Программа выведет Привет, Мир! .
В самом первом примере мы вставляли в html небольшой код php. Теперь, наоборот, внедрим в php-код элементы html.

Код PHP

echo "";
echo "";
echo "Мой первый PHP скрипт";
echo "";
echo "";
echo "

Привет, Мир!

";
echo "";
?>
В результате получим пустую страничку с заголовком Привет, Мир!

Оператор print в PHP

В отличие от оператора echo, print выводит данные с учётом пробелов и переносов текста. Имеет некоторые ограничения - можно использовать только один аргумент, echo несколько. Отрабатывает дольше, чем echo. В дальнейшем будем прибегать к данному оператору при написании функций.

print "Привет, Мир!
Вторая строка текста"; // результат будет выведен в две строки
?>
Текст будет выведен также, как и написан.

Оператор вывода - синтаксис heredoc PHP

Как Вы уже успели заметить, выводить страницу путём постоянного использования оператора echo - это некрасиво и нечитаемо. Поэтому для вывода больших частей html кода есть другой оператор вывода, использующего синтаксис heredoc. Он тоже выводит данные в таком же виде, в каком они и были (пробелы и переносы).

echo <<

Пример


Пример вывода большого объема текста с использованием html


Второй абзац такого же объёмного текста.


HERE;
?>

Памятка к уроку

Код PHP может:

1. не содержать ни одного html-элемента. Страница и текст всё равно отобразятся. html нужен для красивой разметки содержимого.

2. быть как включен в html-код, так и содержать его внутри своих операторов вывода (echo, print и тд). Главное не забывать конструкцию

3. страницы с php-кодом должны иметь соответствующее расширение: .php .phtml

Со следующих уроков мы разберём основы создания сайтов на php, в которых увидите все плюсы использования данного языка!

Спасибо за внимание!

2017-01-10


Создаем динамический сайт с помощью php

Здравствуйте уважаемый посетитель!

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

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

  • Зачем нужен динамический сайт
  • Как преобразовать статический сайт в динамический
  • Формируем блоки динамического сайта
  • Преобразуем веб-страницу из статической в динамическую
  • Исходные файлы сайта

Зачем нужен динамический сайт

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

Также, если требуется дополнительно рассмотреть плюсы и минусы статических и динамических сайтов, можно посоветовать ознакомиться на страницах онлайн справочника "Puzzleweb.ru" с разделом Виды сайтов, где довольно лаконично, но в то же время наглядно даны пояснения по разным вариантам сайтов.

скриншот 12

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

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

Как преобразовать статический сайт в динамический

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

В динамическом же варианте, формирование страниц происходит на сервере при каждом запросе пользователя в зависимости запрашиваемой информации.

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

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

Для пояснения действий, которые для этого будем выполнять, воспользуемся HTML-кодом каркаса главной страницы, полученным на одном из этапов создания сайта в статье .

  1. "utf-8" >

    <span><b>Заголовок страницы </b> </span>

    "Description" content ="Краткое описание содержания страницы" >

  2. "wrapper" >

    Шапка

    Ротатор

    Основное содержание

    Сайдбар

    Подвал

Как видно из HTML-кода, контейнер , предназначенный для размещения видимой части веб-страницы содержит следующие основные блоки:

  • Шапка;
  • Ротатор;
  • Основное содержимое;
  • Сайдбар;
  • Подвал.

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

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

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

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

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

Если кому еще не приходилось иметь дело с языком PHP, то желательно с ним познакомиться поближе, так как PHP является одним из важнейших инструментов разработки сайтов. Это можно сделать, воспользовавшись разного рода справочной литературой, которую на просторах рунета можно найти в большом количестве.

Как вариант, неоднократно уже упомянутый справочник "Puzzleweb.ru", в котором одна из его частей уделена теме PHP. Для более углубленного изучения PHP можно также воспользоваться специализированным справочником, заточенным именно под этот язык, размещенный на сайте "php.ru". По ссылке "https://php.ru/manual/control-structures.intro.html" можно попасть на его страницу "Введение", откуда легко выбрать любой интересующийся раздел справочника.

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

  • include;
  • require;
  • include_once;
  • require_once.

Расписывать здесь их особенности нет смысла, так как это подробно пояснено в справочниках, например по ссылке "http://www.puzzleweb.ru/php/26_inc_files.php" можно хорошо с этим разобраться.

Мы же при создании сайта будем использовать инструкцию "require_once", обычно я использую этот вариант, для меня он наиболее удобен.

Ну а теперь, когда мы разобрались, что будем делать, дальше перейдем к практическим действиям.

Формируем блоки динамического сайта

Для того, чтобы сформировать блоки, которые затем будут участвовать в сборке веб-старниц, в первую очередь необходимо их создать. Делается это в текстовом редакторе Notepad++ аналогично тому, как мы создавали первый файл сайта "index.html" в статье Создаем веб-страницу и размещаем ее на локальном веб-сервере . Только расширение в этом случае нужно указывать не "html", а "php". При этом нужно обязательно обратить внимание на кодировку, чтобы в дальнейшем избежать появления на страницах разного рода непонятных знаков.

Файлы будем создавать в отдельной, вновь созданной папке "blocks". Для файлов, которые являются общими для всех страниц, присвоим названия с учетом названий соответствующих блоков. А для блока "main" укажем определенное название для каждой страницы сайта.

Таким образом, для главной страницы к блоку "main" будем подключать файл под названием "block_glavnaya". Для остальных: "header", "section", "aside" и "footer".

При создании файлов также можно учесть, что для упрощения этой процедуры возможно воспользоваться их копированием с помощью меню "Файл", указав при сохранении "Сохранить как" новое название файла.

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


Затем скопируем содержание каждого блока и перенесем его в соответствующий файл. На примере "header.php" рассмотрим это более подробно.

1. Открываем в редакторе Notepad++ файл "index.html", выделяем нужную область блока "header" и поочередным нажатием правой и левой кнопки мышки копируем ее в буфер обмена.

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

  • необходимо для каждой страницы классу class присваивать значение "activ" . То же самое относится и к аналогичному фрагменту в блоке "footer".

    В дальнейшем, эти фрагменты меню в блоках "header" и "footer" мы также вынесем в отдельные файлы, но сейчас не будем усложнять и оставим их на прежнем месте.

    Как выделить и скопировать в буфер обмена фрагмент блока "header" показано ниже на скриншоте.



    3. И в завершении, для того, чтобы сдвинуть содержимое файла в Notepad++ в левую сторону нужно при нажатой кнопке "Shift" несколько раз нажать на "Tab". В итоге получим сформированный файл "header.php" в следующем виде.


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


    Рис.6 Файл "section.php"


    Рис.7 Файл "block_glavnaya.php"


    Рис.8 Файл "aside.php"


    Рис.9 Файл "footer.php"

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

    Преобразуем веб-страницу из статической в динамическую

    Для того, чтобы обеспечить для нашей главной страницы загрузку файлов, которые были созданы в предыдущем разделе, необходимо сначала изменить расширение файла "index" с "html" на "php", а затем в редакторе Notepad++ вновь его открыть и внести следующие изменения:

    • Удалить содержимое блоков, которое ранее было перенесено во вновь созданные файлы.
    • На освободившееся место записать на языке PHP инструкции "require_once" с указанием пути к соответствующим файлам.
    • В тегах меню
    • , в которых указывается путь к страницам, для главной страницы заменить расширение с "html" на "php", а для других указать наименования вновь создаваемых страниц.
    • Указать в заголовке "Главная".

    После выполнения этих операций наша главная страница должна приобрести следующий вид.


    Из приведенного скриншота можно заметить, что все инструкции PHP выделены открывающим тегом . Такое обозначение принято для указания когда начинать и заканчивать обработку кода, написанного на языке PHP. Поэтому в дальнейшем все коды PHP будут выделяться этим обозначением.

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

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

    Обновим сейчас браузер и попробуем открыть главную страницу.


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

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

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

    Исходные файлы сайта

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

    Создайте файл с именем hello.php в корневом каталоге веб-сервера (DOCUMENT_ROOT) и запишите в него следующее:

    Пример #1 Первый скрипт на PHP: hello.php



    Тестируем PHP


    "

    Привет, мир!

    " ; ?>

    Откройте данный файл в браузере, набрав имя вашего веб-сервера и /hello.php . При локальной разработке эта ссылка может быть чем-то вроде http://localhost/hello.php или http://127.0.0.1/hello.php , но это зависит от настроек вашего сервера. Если все настроено правильно, этот файл будет обработан PHP и браузер выведет следующий текст:

    PHP Test

    Hello World

    Эта программа чрезвычайно проста, и для создания настолько простой странички даже необязательно использовать PHP. Все, что она делает, это вывод Hello World , используя инструкцию PHP echo . Заметьте, что файл не обязан быть выполняемым или еще как-то отличаться от других файлов. Сервер знает, что этот файл должен быть обработан PHP, так как файл обладает расширением ".php", о котором в настройках сервера сказано, что подобные файлы должны передаваться PHP. Рассматривайте его как обычный HTML-файл, которому посчастливилось заполучить набор специальных тегов (доступных также и вам), способных на кучу интересных вещей.

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

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

    Замечание : Замечание о переводах строк

    Переводы строк немногое означают в HTML, однако считается хорошей идеей поддерживать HTML в удобочитаемом виде, перенося его на новую строку. PHP автоматически удаляет перевод строки, идущий сразу после закрывающего тега ?> . Это может быть чрезвычайно полезно, если вы используете множество блоков PHP-кода или подключаете PHP-файлы, которые не должны ничего выводить. В то же время, это может приводить в недоумение. Можно поставить пробел после закрывающего тега ?> и тогда пробел будет выведен вместе с переводом строки, или же вы можете специально добавить перевод строки в последний вызов echo/print из блока PHP-кода.

    Замечание : Пара слов о текстовых редакторах

    Существует множество текстовых редакторов и интегрированных сред разработки (IDE), в которых вы можете создавать и редактировать файлы PHP. Список некоторых редакторов содержится в разделе » Список редакторов PHP . Если вы хотите порекомендовать какой-либо редактор, посетите данную страницу и попросите добавить редактор в список. Использование редактора с подсветкой синтаксиса может быть очень большим подспорьем в вашей работе.

    Замечание : Пара слов о текстовых процессорах

    Текстовые процессоры (StarOffice Writer, Microsoft Word, Abiword и др.) в большинстве случаев не подходят для редактирования файлов PHP. Если вы все же хотите использовать какой-либо из них для тестового скрипта, убедитесь, что сохраняете файл как простой текст (plain text), иначе PHP будет не в состоянии прочесть и запустить ваш скрипт.

    Замечание : Пара слов о Блокноте Windows

    При написании скриптов PHP с использованием встроенного Блокнота Windows необходимо сохранять файлы с расширением.php . (Блокнот автоматически добавит расширение.txt , если вы не предпримете указанные ниже меры.) Когда во время сохранения файла вас попросят указать его имя, введите имя файла в двойных кавычках (например, " hello.php "). Кроме этого, можно кликнуть на выпадающее меню "Текстовые документы" в диалоговом окне сохранения файла и выбрать в нем пункт "Все файлы". После этого можно вводить имя файла без кавычек.

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

    Пример #2 Получение информации о системе из PHP

    На прошлом уроке мы разобрались из каких блоков будет состоять шаблон trip , поэтому можно приступать к работе. Для начала создадим две папки:

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

    ВНИМАНИЕ: В папке images шаблона не размещается графика контента!

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

    Далее можно приступать к созданию самого главного файла index.php , который будет определять визуальное расположение элементов сайта и сообщать CMS Joomla в какой блок поместить различные компоненты и модули. Файл является комбинацией PHP и HTML.

    Я всегда при написании кода использую только Macromedia Dreamweaver . Отличная программа, настоятельно советую ее новичкам, т.к. если в процессе работы над кодом вы сделали ошибку, программа обязательно подсветит ваш косяк.

    На сайте вы найдете самоучитель по Macromedia Dreamweaver . Если вы собираетесь заниматься разработкой сайтов, то программку эту стоит освоить, хотя бы на начальном уровне, чтобы редактировать коды шаблонов без ошибок.

    Позиционирование элементов (блоков) страницы производится при помощи кода HTML, конкретно мы будем использовать теги DIV. Но так, как сайт наш будет работать на движке Joomla, т.е. он будет динамическим, то придется использовать еще и язык PHP. С его помощью мы определим в каких блоках будут находится позиции для вывода модулей, и как эти позиции будут называться, будут ли сворачиваться блоки или нет. Подключим таблицы стилей из внешних файлов, язык контента, установим, как будет меняться размер сайта и пр.

    index.php

    Заголовок файла

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

    < ?php
    defined ("_JEXEC" ) or die ;
    JHtml::_("behavior.framework" , true ) ;
    $app = JFactory::getApplication() ;
    ?>
    < ?php echo "< ?" ; ?> xml version= "1.0" encoding= "< ?php echo $this - > _charset ?> " ?>

    DOCTYPE – это очень важный параметр, на основании которого браузер решает, как ему отображать эту страницу и как интерпретировать CSS.

    < ! DOCTYPE html PUBLIC "- / / W3C/ / DTD XHTML 1.0 Strict/ / EN" "http:/ / www.w3.org/ TR/ xhtml1/ DTD/ xhtml1- strict.dtd" >

    Следующий фрагмент извлекает установленный язык из глобальной конфигурации.

    < html xmlns= "http:/ / www.w3.org/ 1999/ xhtml" xml:lang= "< ?php echo $this - > language; ?> " lang= "< ?php echo $this - > language; ?> " dir = "< ?php echo $this - > direction; ?> " >

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

    < head>
    < jdoc:include type= "head" / >

    Следующие строки в заголовке содержат ссылки на основные CSS стили Joomla.

    < link rel= "stylesheet" href= "< ?php echo $this - > baseurl ?> / templates/ system / css/ system .css" type= "text/ css" / >
    < link rel= "stylesheet" href= "< ?php echo $this - > baseurl ?> / templates/ system / css/ general.css" type= "text/ css" / >

    Чтобы задействовать стили оформления шаблона, делаем ссылку на файл, содержащий каскадные таблицы стилей template.css, который лежит в папке CSS . Не важно, что этот файл пока пустой, главное его подключить, оформлением займемся потом, когда инсталлируем шаблон на Joomla. Так будет проще наблюдать за результатом.

    < link rel= "stylesheet" href= "< ?php echo $this - > baseurl ?> / templates/ < ?php echo $this - > template ?> / css/ template.css" type= "text/ css" / >

    Следующий фрагмент кода позволяет нам сворачивать левую или правую колонки, если в позициях «left» и « right» не расположено ни одного модуля. В случае если свернуты обе колонки, то контент занимает 100% ширины страницы. Если включена только одна колонка, то контент занимает 80%. При двух включенных колонках на контент приходится 60% ширины страницы.

    < ?php
    if ($this - > countModules("left and right" ) = = 0) $contentwidth = "100" ;
    if ($this - > countModules("left or right" ) = = 1) $contentwidth = "80" ;
    if ($this - > countModules("left and right" ) = = 1) $contentwidth = "60" ;
    ?>

    Заголовок закрывается

    < / head>

    < body>

    Блок «page» содержит оформление только страницы сайта, именно она и будет шириной 950рх.

    < div id= "page" >

    Блок "top" находится в самом верху страницы и содержит в себе два блока "logo " и "user1".

    < div id= "top" >

    В боке «logo» мы разместим графический файл логотипа, это будет прописано в таблицах стилей. А вот автоматический вывод названия сайта прописываем в файле index.php, причем название помещаем в тег H1, что очень важно для поисковой оптимизации.

    < div id= "logo" >
    < h1> < ?php echo $app - > getCfg("sitename" ) ; ?> < / h1>
    < / div>

    Определим позицию «user1» в одноименном блоке для вывода модуля поиска по сайту.

    < div id= "user1" >
    < jdoc:include type= "modules" name= "user1" style= "xhtml" / >
    < / div>
    < / div> < ! - - конец блока top - - >

    Вывод модуля горизонтального меню в блоке «user2» в позиции «user2» . Блок будет сворачиваться, если в этой позиции не будет модуля.

    < ?php if ($this - > countModules("user2" ) ) : ?>
    < div id= "user2 " >
    < jdoc:include type= "modules" name= "user2" style= "xhtml" / >
    < / div>
    < ?php endif ; ?>

    Дальше идет блок шапки сайта «header» . В нем мы определим позицию «header» для вывода модулей. Блок будет сворачиваться, если в этой позиции не будет модуля. Я намеренно расширила возможности этого блока, чтобы иметь возможность разместить в нем не только картинку шапки, но и ротаторы изображений.

    < ?php if ($this - > countModules("header " ) ) : ?>
    < div id= "header " >
    < jdoc:include type= "modules" name= "header " style= "xhtml" / >
    < / div>
    < ?php endif ; ?>

    В блоке «user3» определим позицию «user3» для вывода модулей.

    Блок будет сворачиваться, если в этой позиции «user3» не будет выводится модуль.

    < ?php if ($this - > countModules("user3" ) ) : ?>
    < div id= "user3" >
    < jdoc:include type= "modules" name= "user3" style= "xhtml" / >
    < / div>
    < ?php endif ; ?>

    Открывается блок левой колонки, которая будет сворачиваться, если в позиции «left» не будет ни одного модуля.

    < ?php if ($this - > countModules("left" ) ) : ?>
    < div id= "left" >
    < jdoc:include type= "modules" name= "left" style= "xhtml" / >
    < / div>
    < ?php endif ; ?>

    Открывается самый важный блок контента, который может занимать 100% ширины страницы, 80% и 60%, в зависимости от количества включенных колонок.

    < div id= "content< ?php echo $contentwidth ; ?> " >

    Вывод сообщений в компонентах

    < jdoc:include type= "message" / >

    Вывод содержимого контента.

    < jdoc:include type= "component" style= "xhtml" / >
    < / div> < ! - - конец блока контента- - >

    Открывается блок правой колонки, которая будет сворачиваться, если в позиции «rigth» не будет ни одного модуля.

    < ?php if ($this - > countModules("right" ) ) : ?>
    < div id= "rigth" >
    < jdoc:include type= "modules" name= "right" style= "xhtml" / >
    < / div>
    < ?php endif ; ?>

    Вывод блока «footer» , предназначенного для вывода модуля «HTML код» с информацией об авторских правах. Можно также разместить здесь нижнее горизонтальное меню или модуль представления контента. Блок будет сворачиваться, если в этой позиции «footer» не будет выводится не один модуль

    < ?php if ($this - > countModules("footer" ) ) : ?>
    < div id= "footer" >
    < jdoc:include type= "modules" name= "footer" style= "xhtml" / >
    < / div>
    < ?php endif ; ?>

    Закрываются блок страницы сайта «page», body и весь код.

    < / div> < ! - - конец блока page- - >
    < / body> < ! - - конец блока body - - >
    < / html> < ! - - конец кода- - >

    Мы создали полноценный файл index.php . Теперь вы знаете, при помощи каких команд, и в какой последовательности выводятся блоки шаблона.

    ВНИМАНИЕ: Для того, чтобы код шаблона читался из админпанели joomla, то файл index.php необходимо открыть в редакторе AkelPad и сохранить в кодировке UTF-8, при этом снять галочку BOM. Если вы использовали для работы с файлом программу Macromedia Dreamweaver , то необходимо в вернем меню выбрать пункт "Изменить" > "Свойства страницы" и выбрать кодировку документа Юникод (utf-8), при этом снять галочку "включить сигнатуры юникода (ВОМ)". Однако настоятельно не советую вам редактировать код из админки Joomla, если, что-то накосячите - обратной дороги нет, в отличии от программы Macromedia Dreamweaver , где всегда можно отменить сделанные изменения.

    Само оформление блоков будет описано в template.css. Но настраивать таблицы стилей мы будем после инсталляции шаблона на Joomla 3 (joomla 2.5), а для этого необходимо создать

    Здравствуйте! Сейчас мы попробуем реализовать самую простую регистрацию на сайте с помощью PHP + MySQL. Для этого на вашем компьютере должен быть установлен Apache. Принцип работы нашего скрипта изображен ниже.

    1. Начнем с создания таблички users в базе . Она будет содержать данные пользователя (логин и пароль). Зайдем в phpmyadmin (если вы создаете базу на своем ПК http://localhost/phpmyadmin/ ). Создаем таблицу users , в ней будет 3 поля.

    Я создаю ее в базе mysql, вы можете создавать в другой базе. Далее устанавливаем значения, как на рисунке:

    2. Необходимо соединение с этой таблицей. Давайте создадим файл bd.php . Его содержание:

    $db = mysql_connect ("ваш MySQL сервер","логин к этому серверу","пароль к этому серверу");
    mysql_select_db ("имя базы, к которой подключаемся",$db);
    ?>

    В моем случае это выглядит так:

    $db = mysql_connect ("localhost","user","1234");
    mysql_select_db ("mysql",$db);
    ?>

    Сохраняем bd.php .
    Отлично! У нас есть таблица в базе, соединение к ней. Теперь можно приступать к созданию странички, на которой пользователи будут оставлять свои данные.

    3. Создаем файл reg.php с содержанием (все комментарии внутри):



    Регистрация


    Регистрация
















    4. Создаем файл , который будет заносить данные в базу и сохранять пользователя. save_user.php (комментарии внутри):



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


    //удаляем лишние пробелы
    $login = trim($login);
    $password = trim($password);
    // подключаемся к базе
    // проверка на существование пользователя с таким же логином
    $result = mysql_query("SELECT id FROM users WHERE login="$login"",$db);
    if (!empty($myrow["id"])) {
    exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
    }
    // если такого нет, то сохраняем данные
    $result2 = mysql_query ("INSERT INTO users (login,password) VALUES("$login","$password")");
    // Проверяем, есть ли ошибки
    if ($result2=="TRUE")
    {
    echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. Главная страница";
    }
    else {
    echo "Ошибка! Вы не зарегистрированы.";
    }
    ?>

    5. Теперь наши пользователи могут регистрироваться! Далее необходимо сделать "дверь" для входа на сайт уже зарегистрированным пользователям. index.php (комментарии внутри) :

    // вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!
    session_start();
    ?>


    Главная страница


    Главная страница











    Зарегистрироваться



    // Проверяем, пусты ли переменные логина и id пользователя
    if (empty($_SESSION["login"]) or empty($_SESSION["id"]))
    {
    // Если пусты, то мы не выводим ссылку
    echo "Вы вошли на сайт, как гость
    Эта ссылка доступна только зарегистрированным пользователям";
    }
    else
    {

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

    6. Остался файл с проверкой введенного логина и пароля. testreg.php (комментарии внутри):

    session_start();// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!
    if (isset($_POST["login"])) { $login = $_POST["login"]; if ($login == "") { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    if (isset($_POST["password"])) { $password=$_POST["password"]; if ($password =="") { unset($password);} }
    //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
    if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
    {
    exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
    }
    //если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
    $password = stripslashes($password);
    $password = htmlspecialchars($password);
    //удаляем лишние пробелы
    $login = trim($login);
    $password = trim($password);
    // подключаемся к базе
    include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь

    $result = mysql_query("SELECT * FROM users WHERE login="$login"",$db); //извлекаем из базы все данные о пользователе с введенным логином
    $myrow = mysql_fetch_array($result);
    if (empty($myrow["password"]))
    {
    //если пользователя с введенным логином не существует
    }
    else {
    //если существует, то сверяем пароли
    if ($myrow["password"]==$password) {
    //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
    $_SESSION["login"]=$myrow["login"];
    $_SESSION["id"]=$myrow["id"];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
    echo "Вы успешно вошли на сайт! Главная страница";
    }
    else {
    //если пароли не сошлись

    Exit ("Извините, введённый вами login или пароль неверный.");
    }
    }
    ?>

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

    Все проверил, работает исправно!

  • 
    Top