Автор: admin

  • Задания по HTML ко второму уроку

    Краткое содержание 2 урока:

    1. Комментарии в HTML задаются следующим образом

    <!--   Комментарий в браузере не отображается -->

    Они необходимы для собственной метки кода html, что приводит к удобству в работе

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

    Пример тега с атрибутом

    3. Атрибут style-задает визуальные настройки тэга, например: цвет, размер, отступы и т.д.

    Существует большое количество значений атрибутов? каждый из которых несет свой функционал Вот некоторые из них:

    <p style="background: yellow;">Желтый фон: background:yellow;</p>
    <p style="color: red;">Цвет текста красный: color:red;</p>
    <p style="text-align:center;">Расположение текста по центру: text-align:center </p>
    <p style="font-family: "Open Sans", sans-serif;">Шрифт font-family: "Open Sans"</p>
    <p style="font-size: 18px;">Размер шрифта: font-size:18px</p>
    <p style="font-weight: bolder;">Толщина текста: font-weight:bolder</p>
    <p style="line-height: 50px;">Высота строки: line-height:50px</p>
    <p style="letter-spacing: 0.5em;">Меж символьный интервал: letter-spacing:0.5em</p>
    <p style="width: 100px; height: 100px; background: pink;">Ширина: width:100px; высота: height:100px</p>
    

    Желтый фон: background:yellow;

    Цвет текста красный: color:red;

    Расположение текста по центру: text-align:center

    Шрифт font-family: «Open Sans»

    Размер шрифта: font-size:18px

    Толщина текста: font-weight:bolder

    Высота строки: line-height:50px

    Меж символьный интервал: letter-spacing:0.5em

    Ширина: width:100px; высота: height:100px

    4. Тег <img> предназначен для отображения на веб-странице изображений в графическом формате GIF, JPEG или PNG. Адрес файла с картинкой задаётся через атрибут src.

    <img src="https://ot7.ru/wp-content/uploads/2015/09/Untitled-6.jpg" alt="паттерн" width="130" height="130" />

    паттерн

    Задание 1.

    1. Откройте папку с вашим именем в папке «html»
    2. Скопируйте папку «урок 1» и переименуйте его на «урок 2»
    3. Создайте в папке «урок 2» папку «images» (там вы будете хранить картинки)
    4. Откройте файл index.html и в контейнере title замените «1 урок» на «2 урок»
    5. В тег BODY пропишите атрибут с именем style и слудующими значениями
    <body style="font-family: Courier New,sans-serif;width:1200px;">

    style=»font-family: Courier New,sans-serif;» — задает стиль шрифта ( Courier New) без засечек (sans-serif)

    width — ширина блока

    height — высота блока

    6. В тег H1 пропишите атрибут с именем style

    <h1 style="text-align:center;background: #FFDCF3;">Профессия WEB-ДИЗАЙНЕР</h1>

    text-align:center; — расположение текста по центру

    background: #FFDCF3; — фон

    7. Сохраните эти изображения в папку imagescolorWebDesign web_design web_design3

    В документе после заголовка первого уровня отобразите сохраненные вами изображения используя тег <img> и в нем пропишите обязательные атрибуты src=»путь к картинке» и alt=»альтернатива изображению, необходим для продвижения в поисковой системе»

    <img src="images/web_design.jpg" alt="Веб дизайнер" height="300px;">
    
    <img src="images/colorwebdesign.jpg" alt="Веб дизайнер" height="300px;">
    
    <img src="images/web_design3.png" alt="Веб дизайнер" height="300px;">

    8. В блокe предварительного форматирования текста пропишите атрибут с именем style и используя значение text-align расположите блок по правому краю

    <pre style="text-align: right;">
      «Цифровой дизайн похож на живопись, только краски никогда не сохнут».
                                  Невилл Броуди (Neville Brody)</pre>

    9. В заголовке второго уровня задайте фон #F1C1FD и меж строчный интервал = 0,3em, расположите текст по центру

    <h2 style="text-align:center;background: #F1C1FD;letter-spacing:0.3em;">Кто такой Web-дизайнер?</h2>

    10. Заголовку третьего уровня задайте цвет текста — #FF00D2

    <h3 style="color:#FF00D2;">В обязанности Веб-дизайнера входит:</h3>

    11. Абзацу начинающегося с фразы «Его задача» задайте толщину текста -bold, цвет фона #FFDCF3, и высоту строки — 2em

    <p style="font-weight: bold; background: #FFDCF3;line-height: 2em;"> <i>Его задача:</i> помочь пользователю сориентироваться на веб-сайте, сделать работу пользователя с веб-сайтом легкой и приятной. В тоже время веб-дизайнер должен помнить, что он создает рекламный продукт, который должен соответствовать поставленным задачам (т.е. доносить некое рекламное сообщение до пользователя). </p>

    12. После отобразите в документе следующее изображение и в тег <img> пропишите обязательный атрибут  alt=»обязанности веб-дизайнера»

    web_design2

    13.Заголовок второго уровня  Описание деятельности расположите по центру, задайте меж символьный интервал равный 0,3em и фон цветом #FFDCF3

    <h2 style="text-align:center; background: #FFDCF3;letter-spacing:0.3em;">Описание деятельности</h2>

    14. Для абзаца «В Казахстане — 90-200 тысяч тенге» задайте ширину равную 500px, расположите текст по центру, задайте фон #9BEA9B, высоту строки 3em, толщину текста жирнее, размер шрифта 20px

    <p style="width: 500px;text-align: center;background: #9BEA9B;line-height: 3em;font-weight: bolder;font-size: 20px;">В Казахстане — 90-200 тысяч тенге</p>

    15. Абзац «Источник HeadHunter» расположите в правой сторонедокумента

    <p style="text-align:right;"><em>Источник HeadHunter</em></p>

    В результате у вас должно получиться следующее:

    Снимок3

    Снимок Снимок2

     

    https://ot7.ru/html/2.html

  • HTML Урок 2. Атрибуты.Стили.Форматирование текста.Картинки

     

    В этом уроке:

    • Как задаются комментарии в HTML
    • Что такое атрибут
    • Использование стилей.Атрибут style
    • Задний фон
    • Цвет текста
    • Шрифт
    • Размер
    • Выравнивание
    • Форматирование текста
    • Тэг <img>

    Комментарии

    В HTML-документ можно добавлять комментарии, которые не будут отображаться в браузере. Они должны начинаться с символов <!— и заканчиваться символами —>. Все, что заключено между этими символами, при просмотре странице в браузере остается невидимым.

    Есть много причин для использования комментариев в HTML-документах, например пояснение блоков кода, временное выключение кода при отладке и т.д.

    Примечание: обратите внимание, что комментарии могут занимать несколько строк. Помните, что все, написанное между символами <!— и —>, даже HTML-код, будет проигнорировано браузером.

    <html>
      <body>
     
        <!--Этот комментарий не будет отображен-->
        <p>Обычный абзац</p>
     
      </body>
    </html>

      Атрибуты html тегов

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

    Пример тега с атрибутом

    Как мы видим, атрибуты состоят из пары: имя_атрибута=»значение». Имена атрибутов не чувствительны к регистру символов и могут быть записаны с любым сочетанием строчных и заглавных букв. Значение атрибута может состоять из текста, цифр и других символов (единственным исключением является символ амперсанда (&), его использование запрещено). Дополнительные ограничения на использование различных символов зависят от способа записи значения.

    <!-- при указании нескольких атрибутов для одного тега, они должны быть отделены
     друг от друга символом пробела -->
    <p атр1="значение" атр2="значение">содержимое</p>
     
    <!-- сочетание строчных и заглавных букв в имени атрибута -->
    <p АтРибУт1="значение">содержимое</p>

    Использование стилей. Атрибут style

    Атрибут style — используется для стилизации элементов непосредственно в коде. Цель атрибута style заключается в предоставлении простого способа использования CSS стилей в любом HTML-элементе.

    В этом самоучителе атрибут style показан для вашего общего представления об использовании CSS, как инструмента для стилизации страниц. Основы CSS вы cможете изучить с помощью нашего самоучителя по CSS.

    Код примера познакомит вас с новым способом форматирования документа.

    <html>
      <body style="background-color:Gray;">
     
        <h1>Посмотрите на цвета и стили</h1>
        <p style="font-family:verdana;color:red;">
          Этот текст написан красным цветов с помощью шрифта Verdana.
        </p>
        <p style="font-family:times;color:green;">
          Этот текст написан зеленым цветом с помощью шрифта Times.
        </p>
        <p style="font-size:30px;">Этот текст имеет размер 30 пикселей.</p>
     
      </body>
    </html>

    Внимательно посмотрите на пример, с помощью атрибута style мы задаем CSS стиль внутри HTML-элементов, такой способ задания стилей называется встроенным стилем.

    После демонстрации работы атрибута style предлагаем вам познакомится с самыми распространенными свойствами для стилизации текста

    Задний фон background

    Задний фон элемента задается с помощью свойства background-color, которое в качестве значения может принимать любое доступное значение цвета (про различные значения цветов смотрите ниже), после свойства обязательно должно идти двоеточие и значение, после значения обязательно ставится точка с запятой, эти правила распространяются на все свойства атрибута style. Если нужно задать несколько свойств стиля для одного элемента, то каждое последующее свойство записывается после «;» предыдущего свойства.

    Цвет текста color

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

    Определение цвета по названию

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

    color: silver;

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

    Определение цвета через значение, задаваемое сочетанием красного, зеленого и синего

    Можно определить цвет, указав сочетание красного, зеленого и синего в определенной пропорции. Допустим, вам нужно задать оранжевый цвет, который состоит из 80% красного, 40% зеленого и 0% синего. Вот как это можно сделать:

    color: rgb(80%, 40%, 0%);

    Можно также задавать значение красного, зеленого и синего числами от 0 до 255. Например, вместо 80% красного, 40% зеленого и 0% синего можно писать 204 красного, 102 зеленого и 0 синего.

    Посмотрите, как для задания цветов используются обычные числовые значения:

    color: rgb(204, 102, 0);

    Определение цвета через шестнадцатеричный код

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

    color: #cc6600;

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

    Шрифт

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

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

    font-family: Verdana, Geneva, Arial, sans-serif;

    Свойство font-family дает возможность задать список предпочтительных шрифтов, которые указываются через запятую. Если имя шрифта состоит из нескольких слов, то такое название следует заключить в двойные кавычки, например: «Courier New».

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

    font-family: (шрифт без засечек), Arial, Helvetica, sans-serif;
    
    font-family: (шрифт с засечками), «Times New Roman», Times, serif;
    
    font-family: (моноширинный шрифт), «Courier New», Courier, monospaced;

    Размер шрифта

    Размер шрифта очень сильно влияет на дизайн веб-страницы и читабельность ее текста. В CSS есть несколько единиц измерения, с помощью которых можно задавать размер для текста, все они подробно описаны в разделе Единицы измерения CSS. Также имеется возможность задавать размер с помощью ключевых слов:

    font-size: medium;

    Все доступные ключевые слова, задающие размер, вы можете посмотреть в нашем справочнике по CSS в описании свойства font-size.

    Выравнивание

    Данный стиль задает выравнивание текста внутри родительского блока. Может иметь значения left, right, center.

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

    Хочу заметить тот факт, что выравнивание, заданное свойством text-align, распространяется так же на графические элементы внутри блока.

    line-height

    Данный стиль задает расстояние между строк в текстовом блоке (или, иными словами, изменяет высоту строки текста, еще по умному это называется «интерлиньяж»). Порой шрифт значительно приятнее смотрится при увеличении значения line-height, заданного по умолчанию.

    Значение данного свойства задается в процентах (100%, 150% …), множителем (1 —  интерлиньяж по умолчанию, 1.5 — увеличен в полтора раза) или точным значением в пикселах (10px, 1.5 em…).

    letter-spacing

    Межсимвольное расстояние. Значение данного свойства указывает в единицах длины (пиксели, дюймы, pt), либо относительные единицы — em.

    font-weight

    При желании сделать текст блока жирным — используйте стиль font-weight:bold. Если вы наоборот хотите убрать жирное выделение — тут все просто font-weight:normal

    Попробуйте сами:

    <html>
      <body style="background-color: black; color: white;">
     
        <h1 style="font-family: verdana;">Заголовок</h1>
        <p style="font-size: 10px;">Очень маленький размер текста.</p>
        <p style="text-align: right;">Этот текст будет выровнен по правому краю.</p>
        <p style="line-height:100px">Высота строки равна 100px</p>
        <p style="letter-spacing:0.5em">Расстояние между символами</p>
        <p style="font-weight:bold">Жирный текст</p> 
      </body>
    </html>

    Результат:

    Заголовок

    Очень маленький размер текста.

    Этот текст будет выровнен по правому краю.

    Высота строки равна 100px

    Расстояние между символами

    Жирный текст

     Тег <img>

    Тег <img> предназначен для отображения на веб-странице изображений в графическом формате GIF, JPEG или PNG. Адрес файла с картинкой задаётся через атрибут src. Если необходимо, то рисунок можно сделать ссылкой на другой файл, поместив тег <img> в контейнер <a>. При этом вокруг изображения отображается рамка, которую можно убрать, добавив атрибут border=»0″ в тег <img>.

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

    Синтаксис

    HTML <img src=»URL» alt=»альтернативный текст»>
    XHTML <img src=»URL» alt=»альтернативный текст» />

    Атрибуты

    alt — Альтернативный текст для изображения.

    width – Ширина изображения.

    height – Высота изображения.

    Src — Путь к графическому файлу.

    Закрывающий тег

    Не требуется.

    Пример

    <img src="images/girl.png" width="189" height="255" alt="Фото моей дочки">

    Заключение:

    1. Комментарии в HTML задаются следующим образом

    <!--   Комментарий в браузере не отображается -->

    Они необходимы для собственной метки кода html, что приводит к удобству в работе

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

    Пример тега с атрибутом

    3. Атрибут style-задает визуальные настройки тэга, например: цвет, размер, отступы и т.д.

    Существует большое количество значений атрибутов? каждый из которых несет свой функционал Вот некоторые из них:

    <p style="background: yellow;">Желтый фон: background:yellow;</p>
    <p style="color: red;">Цвет текста красный: color:red;</p>
    <p style="text-align:center;">Расположение текста по центру: text-align:center </p>
    <p style="font-family: "Open Sans", sans-serif;">Шрифт font-family: "Open Sans"</p>
    <p style="font-size: 18px;">Размер шрифта: font-size:18px</p>
    <p style="font-weight: bolder;">Толщина текста: font-weight:bolder</p>
    <p style="line-height: 50px;">Высота строки: line-height:50px</p>
    <p style="letter-spacing: 0.5em;">Меж символьный интервал: letter-spacing:0.5em</p>
    <p style="width: 100px; height: 100px; background: pink;">Ширина: width:100px; высота: height:100px</p>
    

    Желтый фон: background:yellow;

    Цвет текста красный: color:red;

    Расположение текста по центру: text-align:center

    Шрифт font-family: «Open Sans»

    Размер шрифта: font-size:18px

    Толщина текста: font-weight:bolder

    Высота строки: line-height:50px

    Меж символьный интервал: letter-spacing:0.5em

    Ширина: width:100px; высота: height:100px

    4. Тег <img> предназначен для отображения на веб-странице изображений в графическом формате GIF, JPEG или PNG. Адрес файла с картинкой задаётся через атрибут src.

    <img src="https://ot7.ru/wp-content/uploads/2015/09/Untitled-6.jpg" alt="паттерн" width="130" height="130" />

    паттерн

  • Задания по HTML к первому уроку

    Задание 1.

    Необходимые программы для выполнения задания:  notepad++ и браузер Сhrome

    (Скачать по ссылке:  http://notepad-plus-plus.org/download/v6.7.4.html )

    1. Создать папку HTML на рабочем столе если ее нет.
    2. Создать папку со своим именем в папке HTML.
    3. Создать файл html
    4. Открыть файл index.html с помощью notepad++.
    5. В меню кодировки выбрать «Преобразовать в UTF-8 без BOM» (Это основная кодировка для страниц на Русском языке). Ее мы будем использовать всегда для создания страниц.
      Untitled-3
    6. Наберите в документе  основной скелет html:
      <html>
          <head> Служебная информация о вашем документе</head>
          <body>
              Тело документа 
          </body>
      </html>
    7. Внутри контейнера <head></head> пропишите следующее:
    <head>
     <title>1 урок-Профессия WEB-ДИЗАЙНЕР</title>
     <meta charset="utf-8">
     <meta name="description" content="Веб-дизайнер - профессия 21 века.Профессию web-дизайнера является перспективной в карьерном плане.Он специалист в области компьютерных технологий, который отвечает за то, как выглядит и воспринимается Интернет-сайт.">
     <meta name="keywords" content="Web дизайнер дизайн страниц графический дизайн интернет сайт компьтерные технологии баннер фриланс свободный график создание сайта web интерфейс художественное оформление сайта">
     <meta name="author" lang="ru" content="Жарова Салтанат" >
     <meta name="robots" content="index,follow">
    </head>

    8.В контейнере <body></body> используя теги и нижеописанный текст на желтом фоне, создать страницу как на рис.1

    <p>Параграф.</p>
    <b>Текст жирным шрифтом.</b>
    <h1>Заголовок</h1>
    <h2>Подзаголовок</h2>
    <h3>Под-подзаголовок</h3> 
    <i>Italic</i>
    <br /> перевод строки
    <hr /> Горизонтальная линия
    <ul>Список</ul>
    <ol>Упорядоченный список</ol>
    <li>Элемент списка</li>
    <pre>˙·٠•●♥ Ƹ̵̡Ӝ̵̨̄Ʒ ♥●•٠·˙</pre>

    Профессия WEB-ДИЗАЙНЕР

    «Цифровой дизайн похож на живопись, только краски никогда не сохнут».
    															Невилл Броуди (Neville Brody)

    Кто такой Web-дизайнер?

    Web-дизайн (от англ. Web design) — отрасль web-разработки и разновидность дизайна.
    Web-дизайнер – это специалист в области компьютерных технологий, который отвечает за то, как выглядит и воспринимается Интернет-сайт.

    В обязанности Веб-дизайнера входит:

    1. создание логотипов, баннеров и других элементов графики
    2. продумывает навигацию по сайту
    3. определяет, где следует разместить текст
    4. учет времени загрузки сайта
    5. проектирует пользовательский интерфейс

    Его задача: помочь пользователю сориентироваться на веб-сайте, сделать работу пользователя с веб-сайтом легкой и приятной. В тоже время веб-дизайнер должен помнить, что он создает рекламный продукт, который должен соответствовать поставленным задачам (т.е. доносить некое рекламное сообщение до пользователя).


    ░░░░██▄
    ░░░██▀░░░░▐
    ▌░███▄░░░░▐
    ▌▐███░▀▄███▄▄▄██▄▄
    ▌█████▌░░▌░░░░░░▌
    ▌▀▀▀▌▐█░░▌░░░░░░▌
    ▌▀▀▀▌▐█░░▌░░░░░░▌
    ▌░░░▌░█▄▌░░░░░░░▌
    

    Описание деятельности

    Основной сферой деятельности web-дизайнера является стилевая, визуальная и программная организация информации электронного формата, логичное и приятное оформление информации, графическое отображение её на страницах Интернета.

    Cредняя заработная плата

    В Казахстане — 90-200 тысяч тенге

    Источник HeaHunter

    1

    Рис. 1

    9. Сохранить документ и посмотреть результат.

    https://ot7.ru/html/1.html

    ПРИМЕЧАНИЕ:
    Текст в теге <Title> должен содержать от 10-70 символов. Текст должен содержать наиболее важные ключевые слова, которые описывают тематику вашего сайта.
    ОБЯЗАТЕЛЬНО: Каждая страница сайта должна содержать уникальное описание.
    Придерживаясь наших рекомендаций, вы получите максимальное количество посетителей сайта.

     

  • Задание по Php к пятому уроку

    Задание

    1. Создать форму для загрузки изображений
    2. Написать скрипт загрузки файла.
    1. Создадим файл для нашей формы zagruzka.php. Его код:

     

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset='utf-8'>
    <title>My First PHP Page</title>
    </head>
    <body>
    
    <form action="upload.php" method="post" enctype="multipart/form-data">
    Выберете файл для загрузки:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Загрузить" name="submit">
    </form>
    
    </body>
    </html>

    И в файле index.php сделаем ссылку на zagruzka.php

    <a href="zagruzka.php">Страница для загрузки файлов</a> <br />

    И смотрим результат:

    Untitled-1

    рис 1

    2. Код скрипта:

    <?php
    $target_dir = "uploads/"; //Задаем папку в которую загружается файл.
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); // исходное имя файла, такое
    $uploadOk = 1;
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Получаем расширение файла для проверки, что файл является картинкой
    if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); // полный путь к временному файлу на диске
    if($check !== false) {
    echo "Файл является изображением - " . $check["mime"] . "";
    $uploadOk = 1;
    } else {
    echo "Файл не является изображением или поврежден.";
    $uploadOk = 0;
    }
    }
    if (file_exists($target_file)) // проверяем существует ли файл
    {
    echo "Извините файл уже существует.";
    $uploadOk = 0;
    }
    if ($_FILES["fileToUpload"]["size"] > 500000) // Проверим размер загруженного файла в байтах
    {
    echo "Файл слишком большой.";
    $uploadOk = 0;
    }
    if($imageFileType != "jpg" and $imageFileType != "png" and $imageFileType != "jpeg" and $imageFileType != "gif" ) // если значение переменной $imageFileType не равно (!=) указанным расширениям то выводим сообщение
    {
    echo "Только JPG, JPEG, PNG & GIF можно загружать. Неверное расширение файла";
    $uploadOk = 0;
    }
    
    if ($uploadOk == 0) {
    echo "Ошибка загрузки файла.";
    } else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) // Перемещаем файл на сервер
    {
    echo "Файл ". basename( $_FILES["fileToUpload"]["name"]). " загружен.";
    } else {
    echo "Ошибка копирования файла.";
    }
    }
    ?>

     

  • Php урок 5. Загрузка файла и отправка email

    Создаем форму для загрузки изображения

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

     

    <!DOCTYPE html>
    <html>
    <body>
    
    <form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
    </form>
    
    </body>
    </html>

    Правила, которые следует соблюдать при создании формы для загрузки файлов:

    Используйте метод пост для формы — method=»post»
    У формы обязательно должен быть задан атрибут : enctype=»multipart/form-data». Этот атрибут используется при загрузке фалов.
    Без указания данного атрибута загрузка не будет работать.

    Замечание:

    В форме необходимо указать атрибут type=»file» для тега <input>. В этом случае в форме отобразится поле загрузки файла, с кнопкой нажав которую вы сможете выбрать загружаемый файл. Необходимо задать имя тега input для последующего получения данных о файле. В нашем примере имя тега будет fileToUpload.
    После загрузки файла вся информация о нем будет передаваться не как обычно через $_POST, а в суперглобальном массиве $_FILE.

    Pathinfo

    (PHP 4 >= 4.0.3, PHP 5, PHP 7)

    pathinfo — Возвращает информацию о пути к файлу

    Описание

    mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )

    pathinfo() возвращает информацию о path в виде ассоциативного массива или строки в зависимости от options.

    Список параметров

    Path — aнализируемый путь.

    Options — eсли указан, то задает для возврата отдельный элемент: один из следующих PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION и PATHINFO_FILENAME.

    Если options не указан, то возвращаются все доступные элементы.

    Возвращаемые значения

    Если параметр options не передан, то возвращаемый ассоциативный массив (array) будет содержать следующие элементы: dirname, basename, extension (если есть) и filename.

    Замечание:
    Если path содержит больше одного расширения, то PATHINFO_EXTENSION возвращает только последнее и PATHINFO_FILENAME отрезает только последнее расширение. (смотрите пример ниже).
    Замечание:
    Если path не содержит расширения, то не будет возвращен элемент extension (см. ниже второй пример).
    Если указан параметр options, будет возвращена строка (string), содержащая указанный элемент.

    Пример Пример использования функции pathinfo()

     

    <?php
    $path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
    
    echo “$path_parts['dirname']<br />”;
    echo $path_parts['basename'] <br />”;
    echo $path_parts['extension'] <br />”;
    echo $path_parts['filename'] <br />”; // начиная с PHP 5.2.0
    ?>

    Результат выполнения данного примера:

    /www/htdocs/inc
    lib.inc.php
    php
    lib.inc

    File_exists

    (PHP 4, PHP 5, PHP 7)
    file_exists — Проверяет наличие указанного файла или каталога

    Описание

    bool file_exists ( string $filename )
    Проверяет наличие указанного файла или каталога.

    Список параметров

    filename
    Путь к файлу или каталогу.

    На платформах Windows, для проверки наличия файлов на сетевых ресурсах, используйте имена, подобные //computername/share/filename или \\computername\share\filename.

    Возвращаемые значения

    Возвращает TRUE, если файл или каталог, указанный параметром filename, существует, иначе возвращает FALSE.

    Замечание:
    Данная функция возвращает FALSE для символических ссылок, указывающих на несуществующие файлы.

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

    Замечание:
    Проверка происходит с помощью реальных UID/GID, а не эффективных идентификаторов.
    Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

    Пример Проверка существования файла

     

    <?php
    $filename = '/path/to/foo.txt';
    
    if (file_exists($filename)) {
    echo "Файл $filename существует";
    } else {
    echo "Файл $filename не существует";
    }
    ?>

    Ошибки

    В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

    Рассмотрим более детально суперглобальный массив $_FILES

    Для каждого загруженного файла массив $_FILES содержит массив, со следующими данными:
    $_FILES[‘fileToUpload’][‘name’] — исходное имя файла, такое, каким его видел пользователь, выбирая файл;
    $_FILES[‘fileToUpload ‘][‘type’] — mime/type файла, к примеру, может быть image/gif; это поле полезно сохранить, если Вы хотите предоставлять интерфейс для скачивания загруженных файлов;
    $_FILES[‘fileToUpload’][‘size’] — размер загруженного файла в байтах;
    $_FILES[‘fileToUpload’][‘tmp_name’] — полный путь к временному файлу на диске;
    $_FILES[‘fileToUpload’][‘error’] — Начиная с версии 4.2.0, содержит код ошибки, который равен 0, если операция прошла успешно
    .
    Где [‘fileToUpload’] имя тега <input> через который загружается файл.

    php коды ошибок передаваемые через $_FILES[‘fileToUpload’][‘error’]

    UPLOAD_ERR_OK
    Значение: 0; Ошибок не возникало, файл был успешно загружен на сервер.

    UPLOAD_ERR_INI_SIZE
    Значение: 1; Размер принятого файла превысил максимально допустимый размер, который задан директивой upload_max_filesize конфигурационного файла php.ini.

    UPLOAD_ERR_FORM_SIZE
    Значение: 2; Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме.

    UPLOAD_ERR_PARTIAL
    Значение: 3; Загружаемый файл был получен только частично.

    UPLOAD_ERR_NO_FILE
    Значение: 4; Файл не был загружен.

    UPLOAD_ERR_NO_TMP_DIR
    Значение: 6; отсутствует временная папка.

    UPLOAD_ERR_CANT_WRITE
    Value: 7;ошибка записи на диск. С версии PHP 5.1.0.

    UPLOAD_ERR_EXTENSION
    Value: 8; Загрузка остановлена. Модуль PHP не имеет возможности загрузить файл; проверьте список загруженных модулей через phpinfo(). С версии PHP 5.2.0.

    Создайте файл «upload.php», И добавьте в него скрипт приведенный ниже.
    Необходимо создать папку uploads, в которую будет копироваться загружаемый файл.

    Первая часть скрипта. Первоначальная проверка файла. В этом скрипте мы проверим, что файл является картинкой.

    <?php
    $target_dir = "uploads/"; //Задаем папку в которую загружается файл.
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
    $uploadOk = 1;
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
    // Проверяем, что файл является картинкой.
    if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
    echo "Файл является картинкой - " . $check["mime"] . "";
    $uploadOk = 1;
    } else {
    echo "Файл не является картинкой допустимого формата.";
    $uploadOk = 0;
    }
    }
    ?>

    Описание PHP скрипта проверки типа файла:

    $target_dir = «uploads/» – задаем папку, в которую будем сохранять загружаемый файл
    $target_file в этой переменной хранится полный путь файла.
    $uploadOk=1 переменная в которой будет храниться статус ошибки. 1- ошибок нет.
    $imageFileType в этой переменной мы храним расширение файла
    Теперь проверим файл на соответствие заявленному расширению. Проверим соответствует ли расширение содержимому файла.
    Замечание: Вам необходимо создать каталог «uploads» в том каталоге в котором создан файл «upload.php». Все загружаемые файл будут храниться там.

    Проверим, существует ли такой файл.
    Для начала проверим существует ли файл и если он существует обнулим переменную $uploadOk:

    // Проверка существует ли файл.
    if (file_exists($target_file)) {
    echo "Файл уже существует.";
    $uploadOk = 0;
    }

    Ограничим размер файла.
    Не очень хорошо загружать фалы большого размера и отображать их на страницах сайта. В этом случае страница будет загружаться очень долго.
    Проверим если размер картинки больше 500kb, в случае если фал большой, то мы обнулим $uploadOk и выведем сообщение файл слишком большой:

    // Проверим размер файла
    if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Извините, ваш файл слишком большой.";
    $uploadOk = 0;
    }

    Разберем следующую часть скрипта которая проверяет расширение файла.
    Код приведенный ниже позволяет загружать только JPG, JPEG, PNG и GIF файлы. Все остальные не будут загружаться и выдадут сообщение об ошибке и обнулят $uploadOk :

    // Разрешаем только определенные форматы фалов. Проверяем значение переменной $imageFileType в которой хранится расширение файлов.
    if($imageFileType != "jpg" and $imageFileType != "png" and $imageFileType != "jpeg" and $imageFileType != "gif" ) {
    echo "Загрузка разрешена только JPG, JPEG, PNG & GIF файлов. Неверный формат файла";
    $uploadOk = 0;
    }

    Полный скрипт загрузки файла изображения.
    Полный скрипт «upload.php» теперь выглядит следующим образом:

     

    move_uploaded_file — Перемещает загруженный файл в новое место

    Описание

    bool move_uploaded_file ( string $filename , string $destination )

    Эта функция проверяет, является ли файл filename загруженным на сервер (переданным по протоколу HTTP POST). Если файл действительно загружен на сервер, он будет перемещён в место, указанное в аргументе destination.

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

    <meta charset="utf-8">
    <?
    $target_dir = "uploads/";
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
    
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
    if(isset($_POST["submit"])) {
     $uploadOk = 1;
     echo '<pre>';
     print_r ($_FILES);
     echo '</pre>';
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
    echo "Файл является изображением - " . $check["mime"] . "";
    $uploadOk = 1;
    } else {
    echo "Файл не является изображением или поврежден.";
    $uploadOk = 0;
    }
    
    if (file_exists($target_file)) {
    echo "Извините файл уже существует.";
    $uploadOk = 0;
    }
    if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Файл слишком большой.";
    $uploadOk = 0;
    }
    if($imageFileType != "jpg" and $imageFileType != "png" and $imageFileType != "jpeg" and $imageFileType != "gif" ) {
    echo "Только JPG, JPEG, PNG & GIF можно загружать. Неверное расширение файла";
    $uploadOk = 0;
    }
    if ($uploadOk == 0) {
    echo "Ошибка загрузки файла.";
    } else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "Файл ". basename( $_FILES["fileToUpload"]["name"]). " загружен.";
    } else {
    echo "Ошибка копирования файла.";
    }
    }
    }
    ?>
    <form action="" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
    </form>

    Php Отправка Email

    Функция mail отправляет сообщение на почту.

    function utf8mail($to,$s,$body,$from_name="x",$from_a = "info@x.com", $reply="info@x.com")
    {
    $s= "=?utf-8?b?".base64_encode($s)."?=";
    $headers = "MIME-Version: 1.0\r\n";
    $headers.= "From: =?utf-8?b?".base64_encode($from_name)."?= <".$from_a.">\r\n";
    $headers.= "Content-Type: text/html;charset=utf-8\r\n";
    $headers.= "Reply-To: $reply\r\n";
    $headers.= "X-Mailer: PHP/" . phpversion();
    mail($to, $s, $body, $headers);
    }
    

     

     

    <?function send_email($name = 'Аноним', $message = 'Я дефолтное сообщение, кажется мой хозяйн забыл меня исправить :с') {
      $subject = 'Регистрация';
      $name = "=?UTF-8?B?".base64_encode($name)."?=";
      $subject = "=?UTF-8?B?".base64_encode($subject)."?=";
      $to = 'mail@my-site.ru';
      $headers = "From: $name\r\n";
      $headers .= "MIME-Version: 1.0" . "\r\n";
      $headers .= "Content-type: text/html; charset=UTF-8" . "\r\n";
      //var_dump($to, $subject, $message);
      $message = wordwrap($message, 70);
      $send = mail($to, $subject, $message, $headers);
    }?>
    
    
    
    
    Active.php
    
    <meta charset="utf-8">
    <?
    mysql_connect("localhost","root","");
    mysql_select_db('baza');
    
    $res=mysql_query("SELECT * from `users` where `email`='{$_GET['email']}'");
    $data=mysql_fetch_array($res);
    echo "SELECT * from `users` where `email`='{$_GET['email']}'" . "<br>";
    if($data['id']){
     $auth=md5($_GET['email']).md5($data['id']);
     echo $auth;
     if($auth==$_GET['auth']){
     $upd=mysql_query("update `users` set `auth`='1' where`email`='{$_GET['email']}'"); 
     if($upd='TRUE'){
     echo 'Поздравляем, регистрация прошла успешно!';
     }
     } 
     else {echo 'Возникла ошибка, попробуйте зарегистрироваться заново!';}
    }
    
    ?>

     

    База данных

     

    -- phpMyAdmin SQL Dump
    -- version 4.0.10.6
    -- http://www.phpmyadmin.net
    --
    -- Хост: 127.0.0.1:3306
    -- Время создания: Мар 16 2016 г., 17:11
    -- Версия сервера: 5.5.41-log
    -- Версия PHP: 5.3.29
    
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    SET time_zone = "+00:00";
    
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    
    --
    -- База данных: `iweb`
    --
    
    -- --------------------------------------------------------
    
    --
    -- Структура таблицы `posts`
    --
    
    CREATE TABLE IF NOT EXISTS `posts` (
      `id` int(255) NOT NULL AUTO_INCREMENT,
      `title` text NOT NULL,
      `content` text NOT NULL,
      `author` varchar(50) NOT NULL DEFAULT 'Жарова Салтанат',
      `img` varchar(200) NOT NULL DEFAULT 'default.jpg',
      `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;
    
    --
    -- Дамп данных таблицы `posts`
    --
    
    INSERT INTO `posts` (`id`, `title`, `content`, `author`, `img`, `date`) VALUES
    (2, 'Lorem Ipsum', 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry''s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.', 'Жарова Салтанат', 'images/default.jpg', '2016-03-04 11:42:22'),
    (6, 'long established fact', 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using ''Content here, content here'', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for ''lorem ipsum'' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).', 'Жарова Салтанат', 'images/default.jpg', '2016-03-04 11:46:47'),
    (7, 'Contrary to popular belief', 'Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.', 'Жарова Салтанат', 'images/default.jpg', '2016-03-04 11:48:08'),
    (9, 'Lorem Ipsum', '<b>There are many</b> variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don''t look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn''t anything embarrassing hidden in the middle of text. <p style="color:red;">All the Lorem Ipsum </p>generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.', 'Жарова Салтанат', 'images/default.jpg', '2016-03-04 11:48:50'),
    (10, 'The point of using', 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using ''Content here, content here'', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for ''lorem ipsum'' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).', 'Жарова Салтанат', 'images/default.jpg', '2016-03-04 11:49:09'),
    (11, 'default model', '<strong>It is a long established</strong> fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using ''Content here, content here'', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for ''lorem ipsum'' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).', 'Жарова Салтанат', 'images/default.jpg', '2016-03-04 11:49:19'),
    (14, 'Lorem Ipsum - это текст-"рыба"', 'Lorem Ipsum - это текст-"рыба", часто используемый в печати и вэб-дизайне. Lorem Ipsum является стандартной "рыбой" для текстов на латинице с начала XVI века. В то время некий безымянный печатник создал большую коллекцию размеров и форм шрифтов, используя Lorem Ipsum для распечатки образцов. Lorem Ipsum не только успешно пережил без заметных изменений пять веков, но и перешагнул в электронный дизайн. Его популяризации в новое время послужили публикация листов Letraset с образцами Lorem Ipsum в 60-х годах и, в более недавнее время, программы электронной вёрстки типа Aldus PageMaker, в шаблонах которых используется Lorem Ipsum.', 'Жарова Салтанат', 'images/default.jpg', '2016-03-07 10:10:01'),
    (15, 'заполнение шаблона 11145', 'Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона, а также реальное распределение букв и пробелов в абзацах, которое не получается при простой дубликации "Здесь ваш текст.. Здесь ваш текст.. Здесь ваш текст.." Многие программы электронной вёрстки и редакторы HTML используют Lorem Ipsum в качестве текста по умолчанию, так что поиск по ключевым словам "lorem ipsum" сразу показывает, как много веб-страниц всё ещё дожидаются своего настоящего рождения. За прошедшие годы текст Lorem Ipsum получил много версий. Некоторые версии появились по ошибке, некоторые - намеренно (например, юмористические варианты).', 'Жарова Салтанат', 'images/default.jpg', '2016-03-07 10:10:26'),
    (16, 'Есть много вариантов Lorem Ipsum', 'Есть много вариантов Lorem Ipsum, но большинство из них имеет не всегда приемлемые модификации, например, юмористические вставки или слова, которые даже отдалённо не напоминают латынь. Если вам нужен Lorem Ipsum для серьёзного проекта, вы наверняка не хотите какой-нибудь шутки, скрытой в середине абзаца. Также все другие известные генераторы Lorem Ipsum используют один и тот же текст, который они просто повторяют, пока не достигнут нужный объём. Это делает предлагаемый здесь генератор единственным настоящим Lorem Ipsum генератором. Он использует словарь из более чем 200 латинских слов, а также набор моделей предложений. В результате сгенерированный Lorem Ipsum выглядит правдоподобно, не имеет повторяющихся абзацей или "невозможных" слов.,hj,hj,h', 'Жарова Салтанат', 'images/default.jpg', '2016-03-07 10:10:45'),
    (17, 'ugkj,m', 'sdxfcghjbkml;,./uo;jkm.,', 'Жарова Салтанат', 'images/default.jpg', '2016-03-14 10:14:16'),
    (18, 'sfdsfsdfds', 'fdsfdsfsdsdfsdfsdfdfsdfdsfd', 'Жарова Салтанат', 'images/uploads/user.png', '2016-03-14 10:29:59'),
    (19, 'sfdsfsdfds', 'fdsfdsfsdsdfsdfsdfdfsdfdsfd', 'Жарова Салтанат', 'uploads/user.png', '2016-03-14 10:35:51'),
    (20, 'sdfsdfsdf', 'sdfsdf sdfsdfsdf sdfsdf sdfsdfsdfsdfsdf sdfsdfsdfsdfsdf sdfsdfsdfsdfsdf sdfsdfsdfsdfsdf sdfsdfsdfsdfsdf sdfsdfsdfsdfsdf sdfsdfsdfsdfsdf sdfsdfsdf sdfsdf sdfsdfsdfsdfsdf sdfsdfsdfsdfsdf sdfsdfsdfsdfsdf sdfsdfsdf sdfsdf sdfsdfsdfsdfsdf sdfsdfsdfsdfsdf sdfsdfsdf', 'Жарова Салтанат', 'images/uploads/balkon_dver.jpg', '2016-03-14 13:40:22');
    
    -- --------------------------------------------------------
    
    --
    -- Структура таблицы `users`
    --
    
    CREATE TABLE IF NOT EXISTS `users` (
      `id` int(200) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) NOT NULL,
      `email` varchar(20) NOT NULL,
      `pass` varchar(255) NOT NULL,
      `auth` int(1) NOT NULL,
      `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ;
    
    --
    -- Дамп данных таблицы `users`
    --
    
    INSERT INTO `users` (`id`, `name`, `email`, `pass`, `auth`, `date`) VALUES
    (16, 'saltik', 'saltik91@mail.ru', '698d51a19d8a121ce581499d7b701668', 1, '0000-00-00 00:00:00'),
    (17, 'ddd', 'ddd@ddd.ti', '202cb962ac59075b964b07152d234b70', 1, '0000-00-00 00:00:00'),
    (19, 'Salta', 'aaa@aaa.aaa', '202cb962ac59075b964b07152d234b70', 1, '2016-03-14 16:18:19');
    
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    

     

     

    Результат 10 уроков можно скачать по этой ссылке 

     

    Пример простой админки

    <?
    session_start();//запустили работу с сессиями
    if($_GET['exit']==1)
      unset($_SESSION['login']);
    if($_SESSION['login']!='admin')
      {
      header("location: login.php");
      }
    mysql_connect("localhost","root","");//соединились с базой данных
    mysql_select_db("users");//выбрали базу данных с которой будем работать
    
    if($_GET['spam']>0)
      mysql_query("update `posts` set 
        `status`='spm' where `id` = '{$_GET['spam']}'");
    if($_GET['ok']>0)
      mysql_query("update `posts` set 
        `status`='ok' where `id` = '{$_GET['ok']}'");
    if($_GET['new']>0)
      mysql_query("update `posts` set 
        `status`='new' where `id` = '{$_GET['new']}'");
    
    if(isset($_POST['h1']))
    {
      if($_GET['edit']>0)
        {
        mysql_query("update `posts` set `h1`='{$_POST['h1']}',
        `text`='{$_POST['text']}' where `id`={$_GET['edit']} 
        ");	
        header("location: index.php");
        }
      else
        {
        do{
          $n=rand(0,1000000000000);
        }while(file_exists("../images/{$n}.jpg"));
        move_uploaded_file($_FILES['myfile']['tmp_name'],"../images/{$n}.jpg");	
        mysql_query("insert into `posts` (`h1`,`text`,`img`) 
        values ('{$_POST['h1']}','{$_POST['text']}','{$n}.jpg');
        ");	
      }
      
    }
    if($_GET['edit']>0)
    {
    $t=mysql_query("select * from `posts` where 
      `id`={$_GET['edit']}");	
    $r=mysql_fetch_array($t);	
    }
    if($_GET['del']>0)
    {
    mysql_query("delete from `posts` where `id`='{$_GET['del']}'");
    }
    ?>
    <meta charset='utf-8'>
    <h1>Вы находитесь в админ панели сайта</h1>
    <a href='?exit=1'>Выход</a>
    <form method='post' enctype='multipart/form-data'>
    <input name="h1" style='Width:400px' value='<?=$r['h1'];?>'><br>
    <textarea name="text" style='Width:400px;height:400px;'>
    <?=$r['text'];?>
    </textarea><br>
    <input type='file' name='myfile'><br>
    <input type='submit' value='Сохранить'>
    </form>
    <hr>
    <?
    $table=mysql_query("select * from posts");
    while($r=mysql_fetch_array($table))
    {
    echo "<h1>{$r['h1']}</h1>";
    echo "<img src='../images/{$r['img']}' height='300px'>";
    echo "<p>{$r['text']}</p>";
    echo "<p style='color:green'>Текущий статус: {$r['status']}</p>";
    echo "Поменять статус: <a href='?spam={$r['id']}'>Спам</a> | ";
    echo "<a href='?new={$r['id']}'>Новая</a> | ";
    echo "<a href='?ok={$r['id']}'>Утвердить</a><br>";
    
    echo "<a href='?del={$r['id']}'>Удалить</a> | ";
    echo "<a href='?edit={$r['id']}'>Редактировать</a><hr>";
    
    }
    
    ?>

     

  • Задание по php к четвертому уроку

    Задание.
    1. Создать форму регистрации пользователя.
    2. Сделать проверку в базе данных существует ли пользователь с таким логином.
    3. Если существует предложить перейти на форму входа на сайт или сменить пароль.
    4. Если пользователь не существует, то добавить его в базу данных.
    5. Создать форму входа на сайт.
    6. Создать форму смены пароля.
    7. Создать страницу подтверждения емайла.

     1. Для этого создадим файл registration.php в нем будет хранится наша форма для регистрации. В результате получим такой код:

     

    <html>
    <head>
    <meta charset='utf-8'>
    <title>My First PHP Page</title>
    </head>
    <body>
    <form action="proverka.php" method="POST"> // страница обработчик
    
    <table>
    <tr>
    <td>Пароль<font color="red">*</font>:</td>
    <td><input type="password" size="20" maxlength="20" name="password"></td>
    </tr>
    <tr>
    <td>Подтверждения пароля<font color="red">*</font>:</td>
    <td><input type="password" size="20" maxlength="20" name="password2"></td>
    </tr>
    <tr>
    <td>E-mail<font color="red">*</font>:</td>
    <td><input type="text" size="20" name="email"></td>
    </tr>
    <tr>
    <td>Имя:</td>
    <td><input type="text" size="20" name="name"></td>
    </tr>
    <tr>
    <td>Фамилия:</td>
    <td><input type="text" size="20" name="lastname"></td>
    </tr>
    <tr>
    <td></td>
    <td colspan="2"><input type="submit" value="Зарегистрироваться" name="submit"></td>
    </tr>
    </table>
    </form>
    
    <br><font color="red">*</font> обязательны для заполнения
    </body>
    </html>

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

    у4-1

    рис 1

    2. Теперь создадим базу данных, в которой будут храниться данные зарегистрированных пользователей. Для этого:

    а)

    у4-2

    рис 2

     Выбрем дополнительно-> phpMyAdmin;

    b) Откроется окно где нужно указать пользователь root пароль не нужно указывать и ок.

    у4-7

    рис 3

    Откроется следующее окно:

    у4-4

    рис 4

    Во вкладке базы данных вводим название test выбираем utf8_general_ci и жмем создать:
    c) Теперь в нашей базе данных нужно создать таблицу users где и будут храниться данные пользователей. Для этого выбираем нашу базу данных test->новая откроется следующее окно.

    у4-3

    рис 5

    d) Перед тем как заполнять поля таблицы мы добавим еще 2 так как имеющихся нам не хватит для нужной нам таблицы:

    у4-6

    рис 6

    Далее заполняем поля:

    В столбцу имя указываем названия полей: id, email, password, date, name_user, lastname. Для поля id указываем тип int длина значения 11 этого будет достаточно. Для поля date выбираем тип timestamp. Для всех остальных полей выбираем тип varchar и длина 255. Для всех полей в графе сравнения указываем utf8_general_ci. И сохранить.

    у4-8

    рис 7

    3. Теперь нам нужна страница обработчик, которая указывается в строчке <form action=»proverka.php» method=»POST»> // страница обработчик. Создаем страницу proverka.php.
    Первый код программы на странице:

    <?php 
    $connect=mysql_connect("localhost","root",""); /* Здесь мы подключаемся к базе используя функцию mysql_connect, в ней следует указать три параметра 1)сервер базы данных 2)логин пользователя БД 3)пароль пользователя БД */
    $db=mysql_select_db("test");
    //Здесь мы указываем 
    //какую БД будем использовать
    ?>

    Второй код программы:

     <html>
    <head>
    <meta charset='utf-8'>
    <title>My First PHP Page</title>
    </head>
    <body>
     <?php
    if (isset($_POST['submit'])){
    $password = $_POST['password'];
    $mdPassword = md5($password);
    $password2 = $_POST['password2'];
    $email = $_POST['email'];
    $name = $_POST['name'];
    $lastname = $_POST['lastname']; 
    $table=mysql_query("SELECT * FROM `users` WHERE `email`='$email'"); // проверка на существование email в базе данных
    $res=mysql_fetch_array($table);
    if($res['email']==$email){
    echo '<font color="red">Пользователь с таким e-mail уже зарегистрирован!</font><a href="index.php">Войти на сайт</a> или <a href="SmenaParolya.php">сменить пароль</a>';
    }
    else{
    if ($password==$password2) // сравнение введённых пользователем паролей
    {
    $query = mysql_query("INSERT INTO `users` (password, email, name_user, lastname ) VALUES ('$mdPassword', '$email', '$name', '$lastname')");
    echo '<font color="green">Вы успешно зарегистрировались!</font><br><a href="index.php">На главную</a>';
    $query = mysql_query("select * from `users` where `email`='$email' and`password`='$mdPassword'");
    $res=mysql_fetch_array($query);
    echo '<a href="aktiv.php?id1='.$res['id'].'&id2='.$res['password'].'">активировать</a>'; // ссылка на страницу для активации
    }
    else {
    echo '<font color="red">Пароли не совпадают!</font>';
    }
    }
    }
    ?>
    </body>
    </html>

    Теперь пользователи могут регистрировать на сайте. Проверим работу формы:

    у4-9

    рис 8

    После нажатия кнопки зарегистрироваться выйдет окно:

    у4-10

    рис 9

    А в базе данных появится информация пользователя.

    у4-11

    рис 10

    Так как пользователи у нас уже существуют создадим форму входа на сайт. Для этого:

    1. Создадим форму входа на странице index.php ee код будет таким:

     

    <form action="login.php" method="POST"> <!-- страница обработчик-->
    <table>
    <tr>
    <td>E-mail:</td>
    <td><input type="text" name="email"></td> <!--поле для ввода email-->
    </tr>
    
    <tr>
    <td>Пароль:</td>
    <td><input type="password" name="password"></td> <!--поле для пароля-->
    </tr>
    
    <tr> // кнопка войти
    <td colspan="2"><input type="submit" value="Войти" name="submit"></td>
    </tr>
    </table>
    </form>
    
    <a href="registration.php">Регистрация</a> <br /> <!-- ссылка для тех кто еще не зарегистрирован-->

    И добавим ее в начало страницы сразу же после меню.

    2. Теперь создадим страницу обработчик login.php . Ее код будет такой:

     

    <?php // как и на странице proverka.php
    
    $connect=mysql_connect("localhost","root","");
    $db=mysql_select_db("test");
    
    ?>
    <html>
    <head>
    <meta charset='utf-8'>
    <title>My First PHP Page</title>
    </head>
    <body>
    <?php
    
    if (isset($_POST['submit'])){
    
    $password = md5($_POST['password']);
    $email = $_POST['email'];
    
    $table=mysql_query("SELECT * FROM `users` WHERE `email`='$email' and `password`='$password'");
    $res=mysql_fetch_array($table);
    if($res['email']==$email and $res['password']==$password) // сравниваем введенные пользователем email и password с данными в базе существует ли такой пользователь или нет
    {
    echo '<font color="green">Добро пожаловать на сайт!</font>';
    }
    else {
    echo '<font color="red">Введите верные пароль и email или </font><a href="registration.php">зарегистрируйтесь</a>';
    }
    }
    ?>
    </body>
    </html>

    Проверяем работу формы:

    у4-12

    рис 11

    Вводим ранее зарегистрированного пользователя, и войти результат должен быть таким:

    у4-13

    рис 12

    3. Перед тем как создать страницу для проверки email добавим новое поле в таблицу базы данных status. Выбираем вкладку структура, откроется окно:

    у4-14

    рис 13

    Внизу есть строчка добавить 1 поле и ok. Откроется следующее окно:

    у4-15

    рис 14

    Заполняем, сохраняем, в таблице появилось теперь новое поле, где будет отражаться статус пользователя, активирован он или нет.

    4. Создадим страницу подтверждения email . В коде на странице proverka.php была такая строчка
    $query = mysql_query(«select * from `users` where `email`=’$email’ and `password`=’$mdPassword’»);
    $res=mysql_fetch_array($query);
    echo ‘<a href=»aktiv.php?id1=’.$res[‘id’].’&id2=’.$res[‘password’].’»>активировать</a>’;
    и ссылка активировать после регистрации: (рис 9)

    Создадим страницу aktiv.php . Ее код будет такой:

    <?php // как и на страницах proverka.php и login.php подключение к базе данных обязательно 
    $connect=mysql_connect("localhost","root","");
    $db=mysql_select_db("test");
    ?>
    <html>
    <head>
    <meta charset='utf-8'>
    <title>My First PHP Page</title>
    </head>
    <body>
    <?php
    $query = mysql_query("select * from `users` where `id`='".$_GET['id1']."' and `password`='".$_GET['id2']."'"); // выбираем из базы данных его id и пароль подписывая как id2 в целях безопсности.
    $res=mysql_fetch_array($query); 
    if($res['id']==$_GET['id1']) // сравниваем результат и данные адресной строки
    {
    echo "ok";
    mysql_query("update `users` set `status`='active' where `id`='".$_GET['id1']."' and `password`='".$_GET['id2']."'"); 
    }
    else
    echo 'err';
    ?>
    </body>
    </html>

    Теперь при нажатии на ссылку активировать будет выходить такое окно:

    у4-16

    рис 15

    И статус пользователя будет меняться в базе данных:

    у4-17

    рис 16

    И на следующем этапе создадим форму смены пароля . Для этого:

    1. Создадим страницу SmenaParolya.php. Ее код будет таким:

    <?php
    $connect=mysql_connect("localhost","root","");
    $db=mysql_select_db("test");
    ?>
    <html>
    <head>
    <meta charset='utf-8'>
    <title>My First PHP Page</title>
    </head>
    <body>
    <?php
    if (isset($_POST['submit'])){
    $np=mysql_query("update `users` set password = '".md5($_POST['passwordn'])."' where `email` = '".$_POST['email']."'"); // заменить данные пароль на новые
    $res=mysql_query($np);
    echo '<font color="green">Пароль сохранен успешно!</font>';
    }
    ?>
    <form method="POST">
    <table>
    <tr>
    <td>E-mail:</td>
    <td><input type="text" name="email"></td>
    </tr>
    <tr>
    <td>Новый пароль:</td>
    <td><input type="password" name="passwordn"></td>
    </tr>
    <tr>
    <td colspan="2"><input type="submit" value="Сохранить" name="submit"></td>
    </tr>
    </table>
    </form>
    </body>

    И добавим ссылку на эту страницу в index.php сразу же после ссылки на регистрацию:

    <a href=»SmenaParolya.php»>Заменить пароль</a> <br />

    у4-18

    рис 17

    Теперь проверим работу формы заменим одному из зарегистрированных раннее пользователь пароль.
    Информация в базе данных до смены пароля:

    у4-19

    рис 18

    Информация в базе данных после смены пароля:

    у4-20

    рис 19

    Форма работает.

  • Php урок 4. Работа с базой данных mysql из php

    Знакомство с mysql и phpmyadmin

    Итак, для начала нам потребуется сервер, для того чтобы можно было запускать php скрипты и подключаться к базе данных (БД). Приступим к изучению СУБД (средство управления базой данных).

    Создадим БД
    Для этого нам необходимо открыть cpanel. Наберем в адресной строке http://ajpro.kz/cpanel. Введем логин ajpro и пароль &.gK^{4.03rI

    Для создания базы данных необходимо пользоваться первым ярлыком MySql Databases
    Для управления базами данных необходимо воспользоваться phpMyAdmin

    у4-30

    рис1

    Создаем первую базу данных в MySql Databases.

    у4-31

    рис2

    1. Откройте панель создания БД MySqlDatabases из Cpanel
    2. Введите имя базы данных, используя английские строчные буквы без пробелов. И нажмите кнопку создать БД “CreateDatabase”.
    После создания базы данных вам необходимо создать пользователя для того чтобы получить доступ к базе данных.

    у4-32

    рис3

    В том же окне найдите раздел создания пользователя и задайте имя и пароль и нажмите Create User.
    Заключающий этап это добавления пользователя в базу данных.

    у4-33

    рис4

    В том же окне MySqlDatabases найдем раздел Add User To Database и выберем нашу базу данных и нашего пользователя и нажмем кнопку Add — добавить.
    После нажатия кнопки add появится окно с выбором уровней доступа пользователя к базе данных. Вы может ограничивать доступ для повышения безопасности. Не рекомендуется разрешать пользователю удалять и очищать таблицы. Ниже приведены описания уровней доступа.
    ALL PRIVILEGES — как мы видели ранее, это даст пользователю MySQL полный доступ к заданной базе данных (если база данных не указана, то ко всем).
    CREATE — позволяет создавать новые таблицы или базы данных.
    DROP — позволяет удалять таблицы или базы данных.
    DELETE — позволяет удалять строки из таблиц.
    INSERT — позволяет добавлять строки в таблицу.
    SELECT — поволит использовать команду Select для чтения из баз данных.
    UPDATE — позволит редактировать строки таблиц.
    GRANT OPTION — позволит назначать или удалять права доступа для других пользователей

    у4-34

    рис5

    Для начала познакомимся СУБД PhpMyAdmin, она позволяет управлять (добавлять, удалять, изменять) записями в БД.
    Для этого откройте в Cpanel PHPMyAdmin

    Ниже на рисунке отображен внешний вид главной страницы СУБД PhpMyAdmin. В этом окне вы можете создать таблицу, и хранить в ней необходимые записи. Это очень удобно при создании сайтов, так как информация структурирована, и вы можете очень быстро получить любую запись из БД.
    Приступим к изучению функционала phpmyadmin.
    Для начала работы, нам потребуется создать саму БД (базу данных). У нее будет свое имя, по которому мы потом будем ее искать.

    у4-35

    рис6

    у4-36

    рис7

    Следуя схеме строения БД, нам нужно сделать таблицу. Для этого после создания базы, у вас будет такое окно:

    у4-37

    рис8

    Здесь я создаю таблицу с именем users и 3 полями в ней.
    Дальше phpmyadmin попросит нас задать структуру для каждого поля:

    у4-38

    рис9

    Здесь в столбце «Поле» нужно указать имя, в «Тип» указываем тип данных, которые будут там храниться (INT — это число, VARCHAR — строка или небольшой(!) текст).
    В «Дополнительно» указываем полю с именем «id» параметр «auto_increament», что означает, оно будет увеличиваться каждый раз при вставке каких-либо данных, и задаем ему параметр «Первичный ключ», это значит, что по первому столбцу мы сможем однозначно идентифицировать поле.
    «Однозначно идентифицировать поле» — значит даже если имя и фамилия будут одинаковы, столбец «id» будет иметь разные значения (так как он автоматически увеличивается на единицу каждый раз).
    Теперь нажимаем «Сохранить». Тем самым мы создали таблицу users, в которой можем хранить имя и фамилию (id не нужно вставлять, mysql сделает все за нас), в БД users.
    Таблицу мы создавали для хранения записей. А как их туда вставлять?

    у4-39

    рис10

    Выбираем в меню «Вставить» и пишем нужные значения в необходимые поля.
    Теперь как удалить или изменить значения в базе данных mysql с СУБД PhpMyAdmin:
    Для удаления просто перейдите в меню «Обзор» и нажмите красный крестик напротив записи:

    у4-40

    рис11

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

    Работа с базой данных mysql из php

    Итак, для начала нужно научиться подключаться к уже заведомо созданной БД. Для этого используется вот такой код:

     

    <?php
    
    $connect=mysql_connect("localhost","root","");
    /*
    Здесь мы подключаемся к базе
    используя функцию mysql_connect,
    в ней следует указать
    три параметра
    1)сервер базы данных
    2)логин пользователя БД
    3)пароль пользователя БД
    */
    $db=mysql_select_db("baza");
    //Здесь мы указываем
    //какую БД будем использовать
    
    ?>

    В вышеизложенном коде, я подключался к серверу localhost используя логин root который не требует пароля (поэтому его не указываем).
    После подключения к базе, мы можем проводить все те операции которые выполняли в СУБД phpmyadmin. То есть вставку, удаление, изменение и получение различной информации.

    Теперь по пунктам:

    1) Вставка записей в базу данных mysql из php

    $query="INSERT INTO `таблицу` (`указываем поле`,`указываем поле`) VALUES ('любое значение','любое значение')";
    $result=mysql_query($query);
    if($result==true)
    {
    echo "Успешно!";
    }
    else
    {
    echo "Ошибка!<br />".mysql_error();
    }

    То есть вставка производится функцией INSERT. Если все прошло успешно, то mysql вернет результат true, или иначе — false.
    Полей можно указывать хоть сколько, главное чтобы все они существовали в БД. То есть, к примеру, существует таблица в которой есть поля «name» , «surname» и «city».
    Для вставки в нее значений будем использовать такой код:

    $query="INSERT INTO `users` (`name`,`surname`,`city`) VALUES ('Ruslan','Huzin','Kokshetau')";
    $result=mysql_query($query);
    if($result==true)
    {
    echo "Успешно!";
    }
    else
    {
    echo "Ошибка!<br>".mysql_error();
    }

    2) Удаление записей из базы данных mysql из php

    Удаление выполняется функцией DELETE. Для этого будет примерно вот такой код:

    $query="DELETE FROM `users` WHERE `name`='Ruslan' ";
    $result=mysql_query($query);
    if($result==true)
    {
    echo "Успешно!";
    }
    else
    {
    echo "Ошибка!<br>".mysql_error();
    }

    То есть мы удалим из таблицы users все строки (ну или одну), где столбец name равен значению Ruslan.

    3) Изменение значений в базе данных mysql из php 

    Также мы можем вносить изменения в уже существующие записи в таблице. К примеру нам надо заменить значение столбца name в строке, где столбец surname имеет значение Huzin. Для этого выполняем такой код:

    $query="UPDATE `users` SET `name`='myname'  WHERE `surname`='Huzin' ";
    $result=mysql_query($query);
    if($result==true)
    {
    echo "Успешно!";
    }
    else
    {
    echo "Ошибка!<br>".mysql_error();
    }

    4) Получение значений из базы данных mysql из php

    Теперь самое интересное) Раз мы записали что-то, то ведь должны и получить обратно?)))
    К примеру нам нужно достать из таблицы users всю строку где столбец name равен Ruslan.
    Для этого нам потребуется чуть другой код, нежели в первых примерах.
    Вот собственно и он:

     

    $query="SELECT * FROM WHERE `name`='Ruslan' ";
    $result=mysql_query($query);
    if($result==true)
    {
    echo "Успешно!";
    }
    else
    {
    echo "Ошибка!<br>".mysql_error();
    }
    $data=mysql_fetch_array($result);
    
    /*
    Теперь в переменной
    хранятся данные из таблицы
    */

    Тут нам потребовалась еще одна функция, для записи выбранных данных в переменную (массив) на php.
    Для того что обратиться к выбранной строке, мы пишем так:
    $data[‘имя столбца’]
    то есть, чтобы достать фамилию из выбранной строки (где имя было Ruslan), мы на вывод должны написать:
    echo $data[‘surname’];
    А при выборке из таблицы, писали SELECT *, эта звездочка означает, что нужно выбрать все столбцы из строки.
    Если нам надо, к примеру, выбрать только surname, пишем SELECT `surname`.
    А для выборки сразу нескольких строк из таблицы, потребуется еще и цикл для их вывода. Это в том случае, если к примеру, строк со столбцом Ruslan будет несколько.
    Вот код:

     

    $query="SELECT * FROM WHERE `name`='Ruslan' ";
    $result=mysql_query($query);
    
    while($data=mysql_fetch_array($result))
    {
    echo $data['name']."<br>".$data['surname']."<hr>";
    }

    Теперь на экран выведутся все строки, у которых столбец name равен значению Ruslan.

    Простые mysql запросы
    Зная структуру БД, таблиц в БД и полей, можно посылать следующие запросы в MySQL.
    Select запросы
    слово select, говорит само за себя, и становится понятно, что пользуясь данными запросами, мы будем выбирать (читать) информацию из БД.

    SELECT count(*) FROM table_name;
    Выведет количество всех записей в таблице
    у4-41

    рис 12

    SELECT * FROM table_name;
    Выбирает все записи из таблицы БД
    у4-42

    рис 13

    SELECT * FROM table_name LIMIT 2,3;
    Выбирает 3 записи из таблицы, начиная с 2 записи. Этот запрос полезен при создании блока страниц навигации.
    у4-43

    рис 14

    SELECT * FROM person ORDER BY number;
    Выберет все записи из таблицы person в порядке возрастания значений поля number
    у4-44

    рис15

    SELECT * FROM person ORDER BY number DESC;
    Выбирает все записи из person, но уже в порядке убывания (т.е. в обратном порядке).
    у4-45

    рис 16

    SELECT * FROM person ORDER BY number LIMIT 5;
    Выбирает 5 записей из таблицы person, в порядке возрастания.
    у4-46

    рис 17

    SELECT * FROM person WHERE name=’Anna’;
    Выбирает все записи из таблицы person, где поле name соответствует значению Anna.
    у4-47

    рис18

    SELECT * FROM person WHERE name LIKE ‘An%’;
    Выбирает все записи из таблицы person, в которой значения поля name начинаются с An.
    у4-48

    рис 19

    SELECT * FROM person WHERE name LIKE ‘%na’ ORDER BY number ;
    Выбирает все записи из таблицы person, где name заканчивается на na, и упорядочивает записи в порядке возрастания значения number.
    у4-49

    рис 20

    SELECT name, last_name FROM person;
    Выбирает все значения полей name и last_name из таблицы person.
    у4-50

    рис 21

    SELECT DISTINCT site FROM table_name;
    Выбирает уникальные (DISTINCT) значения поля site из таблицы table_name. Например, при 5 значениях поля site: sitear.ru, sitear.ru, sitear.ru, yaveterinar.ru, wi-korporaciya.ru; выведет только 3 уникальные значения: sitear.ru, yaveterinar.ru, wi-korporaciya.ru;
    у4-51

    рис 22

    SELECT * from person where age in (12,15,18);
    Выведет все записи таблицы person в которых значения поля age будет равно 12 или 15 или 18.
    у4-52

    рис 23

    select max(age) from person;
    Выберет максимальное значение age из таблицы person.
    у4-53

    рис 24

    select min(age) from person;
    Выберет минимальное значение age из таблицы person.
    у4-54

    рис 25

    Insert запросы
    данные запросы позволяют вставить запись в таблицу БД. Другими словами создать строку в таблице или добавить информацию в таблицу БД.
    insert into table_name(site, description) values (‘sitear.ru’, ‘SiteAR – создание сайтов’)
    Вставит в таблицу table_name, а точнее в поля site и description данной таблицы, соответствующие значения.Update запросы
    направлены на изменение уже имеющихся данных в таблице БД.
    у4-55

    рис 26

    update table_name set site = ‘domain.com’ where id = ‘3’
    Изменяет значение поля site на domain.com в таблице table_name где id равен 3.
    Delete запросы
    удаляют записи из таблицы БД.
    у4-56

    рис 27

    delete from table_name where id = ‘3’
    Удаляет запись из table_name где id равен 3.
    у4-57

    рис 28

    Сложные mysql запросы

    Как уже упоминалось раньше, сложные mysql запросы, работают более, нежели с одной таблицей БД. Данные mysql запросы, мы будем рассматривать более в индивидуальном порядке, так как они сложные и их будет немного.
    SELECT DISTINCT last_name FROM person, address WHERE person.adress_no = address.address_no AND city LIKE ‘L%’;
    или
    SELECT DISTINCT last_name FROM person p, address adr WHERE p.adress_no = adr.address_no AND city LIKE ‘L%’;
    Выводит все уникальные фамилии людей (last_name), которые живут в городе с названием на букву L. (предполагаем, что в таблице address есть поля address_no, city).
    Данные примеры сложных mysql запросов, выведут один и тот же результат. Запросы не очень то и сложные, нужно только указать имя таблицы БД, а потом, через точку указать поле таблицы. Или же можно, как во втором примере, дать короткие имена таблицам (p для person, adr для address). Результат запросов будет один и тот же.
    SELECT heroes.char_name, heroes.count, char_templates.ClassName FROM char_templates, heroes WHERE char_templates.ClassId = heroes.class_id Order by char_templates.ClassName;
    или
    SELECT char_name, count, ClassName FROM heroes left join char_templates on heroes.class_id=char_templates.ClassId;
    Берем из таблицы heroes поле char_name, из heroes поле count, из таблицы char_templates поле ClassName, где char_templates.ClassId и heroes.class_id имеют общий идентификатор и сортируем запрос по имени класса героев.
    Таким же образом, можно подавать сложные mysql запросы с помощью update, insert, delete и др.

    Задание.
    1. Создать форму регистрации пользователя.
    2. Сделать проверку в базе данных существует ли пользователь с таким логином.
    3. Если существует предложить перейти на форму входа на сайт или сменить пароль.
    4. Если пользователь не существует, то добавить его в базу данных.
    5. Создать форму входа на сайт.
    6. Создать форму смены пароля.
    7. Создать страницу подтверждения емайла.

     

     

    <?
    //1 соединились с базой данных
    mysql_connect("localhost","root","");
    mysql_select_db("users");
    //2 проверяем были ли отправлены данные из формы
    if($_GET['id']>0)
      {
      mysql_query(
      "update `users` set `status`='Ok' where `id`='{$_GET['id']}'");
      }
    if($_GET['del']>0)
      {
      mysql_query(
      "update `users` set `status`='del' where `id`='{$_GET['del']}'");
      }
      
    if(isset($_POST['login']))
      {
      //2.1 Проверяем есть ли такой пользователь в базе данных
      $table=mysql_query(
      "select `id` from `users` where `login`='{$_POST['login']}' ");
      $row=mysql_fetch_array($table);
      //2.2 Если id пользователя больше нуля то выводим сообщение об ошибке
      if($row['id']>0)
        echo "Извините, но такой пользователь уже зарегистрирован";
      else
        {
        //Если такого пользователя нет то мы его регистрируем
        $_POST['password']=MD5($_POST['password']);
        mysql_query("insert into `users` (`login`,`password`) 
        values ('{$_POST['login']}','{$_POST['password']}')");	
        //сообщаем об успешной регистрации
        echo "Поздравляю вас, {$_POST['login']} с успешной регистрацией!";
        }
      }
      
    ?>
    <h1>Форма регистрации пользователя</h1>
    <form method='post'>
    <input name='login' placeholder='Введите логин'><br>
    <input name='password' type='password' placeholder='Введите пароль'><br>
    <input type='submit' value='Зарегистрироваться'><br>
    </form>
    <hr>
    <h1>Админка. Пользователям не трогать</h1>
    <?
    $table=mysql_query("select * from `users`");
    while($row=mysql_fetch_array($table))
      {
      if($row['status']!="Ok")
        {
        echo $row['login'];
        echo "<a href='?id={$row['id']}'>Активировать</a>";
        echo "<br>";
        }
        else
        {
        echo $row['login'];
        echo "<a href='?del={$row['id']}'>Заблокировать</a>";
        echo "<br>";			
        }
      
      }
        
    
    ?>

    admin

  • Задание по php к третьему уроку

    141

    Задание

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

    Создать 6ть элементов такого массива
    Вывести с помощью абсолютного позиционирования в два ряда.
    Размеры и позиции задавать через стили top left width height.
    Картинку позиционировать по центру imageholder это держатель картинки.
    Снизу выводить описание и ключевые слова.

    Для этого:

    1. Создадм в папке php папку images и добавим в нее картинки. Например эти:

    k-1 l-1

    v-1

     m-1 a1 ya-1

    2. Создадим многомерный массив frukt:

    $frukt=array
    (
    array (“описание картинки”,” описание картинки ”,” описание картинки ”),
    array (“название картинки”,” название картинки”,” название картинки”),
    array (“images/kartinka.png”,” images/kartinka.png ”,” images/kartinka.png ”), // папка с изображениями/название картинки
    );

    3. Выведем элементы массива на экран:

    echo "<img src='".$frukt[2][0]."'>";
    echo "<br />"; // первый элемент третьего массива по схеме $массив[номер массива][номер элемента]
    echo "<p> ".$frukt[0][0]."</p>";
    echo "<br />";
    echo "<p >".$frukt[1][0]."</p>";

    4. Проделаем тоже самое с остальными элементами массива и зададим стиль: размеры и позиции.

    у3-1

     рис 1

    5. Получим такой код.

    <?php
    $frukt=array
    (
    array("Оранжевый сочный апельсин", "спелая сладкая клубника", "желтый кислый лимон", "спелая малина", "вкусный крупный виноград", "красное ароматное яблоко"),
    array("апельсин", "клубника", "лимон", "малина", "виноград", "яблоко"),
    array("images/apelsin.jpg", "images/klubnika.png", "images/limon.jpg", "images/malina.png", "images/vinograd.png", "images/yabloko.png")
    );
    echo "<img style=\"width: 200px;height: 200px;position: absolute;\" src='".$frukt[2][0]."'>";
    echo "<br />";
    echo "<p style=\"position: absolute;top: 404px;\">".$frukt[0][0]."</p>";
    echo "<br />";
    echo "<p style=\"position: absolute;top: 425px;\">".$frukt[1][0]."</p>";
    echo "<img style=\"width: 200px;height: 200px;position: absolute;top: 223px;left: 243px;\" src='".$frukt[2][1]."'>";
    echo "<br />";
    echo "<p style=\"position: absolute;left: 230px;top: 404px;\">".$frukt[0][1]."</p>";
    echo "<br />";
    echo "<p style=\"position: absolute;top: 424px;left: 230px;\">".$frukt[1][1]."</p>";
    echo "<br />";
    echo "<img style=\"width: 200px;height: 200px;position: absolute;top: 223px;left: 455px;\" src='".$frukt[2][2]."'>";
    echo "<br />";
    echo "<p style=\"position: absolute;top: 404px;left: 466px;\">".$frukt[0][2]."</p>";
    echo "<br />";
    echo "<p style=\"position: absolute;top: 425px;left: 466px;\">".$frukt[1][2]."</p>";
    echo "<br />";
    echo "<img style=\"width: 200px;height: 200px; position: absolute;top: 460px;\" src='".$frukt[2][3]."'>";
    echo "<br />";
    echo "<p style=\"position: absolute;top: 635px;\">".$frukt[0][3]."</p>";
    echo "<br />";
    echo "<p style=\"position: absolute;top: 651px;\">".$frukt[1][3]."</p>";
    echo "<br />";
    echo "<img style=\"width: 200px;height: 200px;position: absolute;top: 450px;left: 207px;\" src='".$frukt[2][4]."'>";
    echo "<br />";
    echo "<p style=\"position: absolute;top: 636px;left: 231px;\">".$frukt[0][4]."</p>";
    echo "<br />";
    echo "<p style=\"position: absolute;top: 651px;left: 231px;\">".$frukt[1][4]."</p>";
    echo "<br />";
    echo "<img style=\"width: 200px;height: 200px;position: absolute;top: 452px;left: 434px;\" src='".$frukt[2][5]."'>";
    echo "<br />";
    echo "<p style=\"position: absolute;top: 634px;left: 461px;\">".$frukt[0][5]."</p>";
    echo "<br />";
    echo "<p style=\"position: absolute;top: 652px;left: 461px;\">".$frukt[1][5]."</p>";
    ?>
  • Php урок 3. Массивы и циклы в Php

    Функции PHP . Функции для работы с массивами

    array
    (PHP 3, PHP 4, PHP 5 )
    array — Создать массив

    Описание

    array array ( [mixed …] )

    Возвратить массив параметров. Параметры могут быть заданы с индексом при помощи оператора =>. См. раздел руководства array type для ознакомления с понятием массив.
    Замечание: array() — это языковая конструкция для представления массивов, а не функция.
    Синтакс «index => values», разделённые запятыми, определяет индексы и их значения. Индекс может быть строкой или целым числом. Если индекс опущен, будет автоматически сгенерирован числовой индекс, начиная с 0. Если индекс — число, следующим сгенерированным индексом будет число, равное максимальному числовому индексу + 1. Обратите внимание, что если определены два одинаковых индекса, последующий переназначит предыдущий.
    Использование запятой после последнего определённого элемента массива, в отличие от обычного поведения, является приемлемым синтаксисом.
    Последующие примеры демонстрируют создание двухмерного массива, определение ключей ассоциативных массивов и и способ генерации числовых индексов для обычных массивов, если нумерация начинается с произвольного числа.

    Пример 1. Пример использования array()

    <?php
    $fruits = array (
    "fruits" => array("a" => "orange", "b" => "banana", "c" => "apple"),
    "numbers" => array(1, 2, 3, 4, 5, 6),
    "holes" => array("first", 5 => "second", "third")
    );
    ?>

    Пример 2. Автоматическая индексация array()

    <?php
    $array = array(1, 1, 1, 1, 1, 8 => 1, 4 => 1, 19, 3 => 13);
    print_r($array);
    ?>

    Результат выполнения данного примера:

    Array
    (
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 13
    [4] => 1
    [8] => 1
    [9] => 19
    )

    Обратите внимание, что индекс ‘3’ определён дважды, и содержит последнее значение 13. Индекс 4 определён после индекса 8, и следующий сгенерированный индекс (значение 19) — 9, начиная с максимального индекса 8.
    Этот пример создаёт массив, нумерация которого начинаяется с 1.

    Пример 3. array(), нумерация которого начинаяется с 1

    <?php
    $firstquarter = array(1 => 'January', 'February', 'March');
    print_r($firstquarter);
    ?>

    Результат выполнения данного примера:

    Array
    (
    [1] => January
    [2] => February
    [3] => March
    )

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

    Пример 4. Доступ к массиву внутри кавычек

     

    <?php
    
    $foo = array('bar' => 'baz');
    echo "Hello {$foo['bar']}!"; // Hello baz!
    
    ?>

    Цикл for и массивы данных

    Цикл for самый сложный цикл в PHP. Он ведет себя так же как его аналог в языке C. Синтаксис цикла for следующий:
    for (expr1; expr2; expr3)
    statement
    Первое выражение (expr1) всегда вычисляется (выполняется) только один раз в начале цикла.
    В начале каждой итерации оценивается выражение expr2. Если оно принимает значение TRUE, то цикл продолжается, и вложенные операторы будут выполнены. Если оно принимает значение FALSE, выполнение цикла заканчивается.
    В конце каждой итерации выражение expr3 вычисляется (выполняется ).
    Каждое из выражений может быть пустым или содержать несколько выражений, разделенных запятыми. В expr2 все выражения, разделенные запятыми, вычисляются, но результат берется из последнего. Если выражение expr2 отсутствует, это означает, что цикл будет выполняться бесконечно. (PHP неявно воспринимает это значение как TRUE, также, как в языке C). Это может быть не столь бесполезно, сколь вы могли подумать, так как часто необходимо прервать цикл, используя условный оператор break вместо использования выражения в цикле for, которое принимает истинное значение.

    Рассмотрим следующие примеры. Все из них отображают числа от 1 до 10:

     

    <?php
    /* пример 1 */
    
    for ($i = 1; $i <= 10; $i++) {
    echo $i;
    }
    
    /* пример 2 */
    
    for ($i = 1; ; $i++) {
    if ($i > 10) {
    break;
    }
    echo $i;
    }
    
    /* пример 3 */
    
    $i = 1;
    for (; ; ) {
    if ($i > 10) {
    break;
    }
    echo $i;
    $i++;
    }
    
    /* пример 4 */
    
    for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
    ?>

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

    for (expr1; expr2; expr3):
    statement

    endfor;

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

     

    <?php
    /*
    * Это массив с некоторыми данными, которые мы хотим изменить
    * при работе цикла.
    */
    $people = array(
    array('name' => 'Kalle', 'salt' => 856412),
    array('name' => 'Pierre', 'salt' => 215863)
    );
    
    for($i = 0; $i < count($people); ++$i) {
    $people[$i]['salt'] = mt_rand(000000, 999999);
    }
    ?>

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

     

    <?php
    $people = array(
    array('name' => 'Kalle', 'salt' => 856412),
    array('name' => 'Pierre', 'salt' => 215863)
    );
    
    $size = count($people);
    for($i = 0; $i < $size; ++$i) {
    $people[$i]['salt'] = mt_rand(000000, 999999);
    }
    ?>

    Цикл while

    while
    (PHP 4, PHP 5)
    Циклы while являются простейшим видом циклов в PHP. Они ведут себя так же, как и их коллеги из языка C. Простейшей формой цикла while является следующее выражение:
    while (expr)
    statement
    Смысл выражения while очень прост. Оно указывает PHP выполнять вложенные выражения повторно до тех пор, пока выражение в самом while является TRUE. Значение выражения expr проверяется каждый раз перед началом цикла, поэтому даже если значение выражения изменится в процессе выполнения вложенных выражений в цикле, выполнение не прекратится до конца итерации (каждый раз, когда PHP выполняет выражения в цикле — это одна итерация). В том случае, если выражение while равно FALSE с самого начала, вложенные выражения ни разу не будут выполнены.
    Также, как и с оператором if, вы можете группировать несколько выражений внутри одного цикла while, заключая эти выражения между фигурными скобками или используя альтернативный синтаксис:

    while (expr):
    statement

    endwhile;

    Следующие примеры идентичны, и оба выведут числа от 1 до 10:

     

    <?php
    /* пример 1 */
    
    $i = 1;
    while ($i <= 10) {
    echo $i++; /* выводится будет значение переменной
    $i перед её увеличением
    (post-increment) */
    }
    
    /* пример 2 */
    
    $i = 1;
    while ($i <= 10):
    echo $i;
    $i++;
    endwhile;
    ?>

    Задание,

    Создать многомерный массив в каждом элементе, которого будут храниться четыре переменные
    1. Описание картинки
    2. Подпись к картинке
    3. Путь к картинке
    4. Ключевые слова к картинке.
    Создать 6ть элементов такого массива
    Вывести с помощью абсолютного позиционирования в два ряда.
    Размеры и позиции задавать через стили top left width height.
    Картинку позиционировать по центру imageholder это держатель картинки.
    Снизу выводить описание и ключевые слова.

     

    if($_GET['submit']=="send"){
    $g=$_GET['fruit'];
    }
    $f=array("banan"=>"банан","apple"=>"яблоко","grusha"=>"груша","fruits"=>"фрукты");
    $fr = explode(" ", trim($g));
    
    echo "<pre>";
    print_r($fr);
    echo "</pre>";
    foreach ($fr as $k=>$v){
      echo "
      <h3 style=' background:#ff0;'>{$f[$v]} </h3>
      <img height='200' src='images/{$fr[$k]}.jpg'>
      ";
      
    }
    
    ?>
    <div style="width:100%;float:left;">
    <form action="" method="get">
    <p><input name="fruit" type="text"></p>
    
    <input type="submit" name="submit" value="send">
    </form>
    </div>

     

    $arr=array("имя"=>"Петр","age"=>27,"tel"=>"87212");
    $arr["имя"]="Петя";
    echo "<pre>";
    print_r($arr) ;
    echo "</pre>";
    echo $arr['age']. "<br>";
    foreach($arr as $key=>$value){
      echo "key: ".$key . "value:" .$value . "<br>";
    }
    
    $book1=array('author'=>'Л.Н.Толстой','title'=>'Война и мир','age'=>'1998');
    $book2=array('author'=>'Гоголь','title'=>'Мертвые души','age'=>'2001');
    $book3=array('author'=>'Бэдроус','title'=>'Тарзан','age'=>'2004');
    $book4=array('author'=>'Жюль Верн','title'=>'Дети капитана Гранта','age'=>'1996');
    
    $shelf1[1]=$book1;
    $shelf1[2]=$book2;
    
    $shelf2[1]=$book3;
    $shelf2[2]=$book4;
    
    $bookshelf[1]=$shelf1;
    $bookshelf[2]=$shelf2;
    
    $bookshelf[3][1]['author']="Уэльс";
    $bookshelf[3][1]['title']="Машина времени";
    $bookshelf[3][1]['age']="2006";
    
    echo "<pre>";
    print_r($bookshelf);
    echo "</pre>";
     
    /* Выведите на экран всю информацию о книгах, авторы которых: Гоголь и Жюль Верн*/
    echo $bookshelf[3][1]['author'] ." ";
    echo $bookshelf[3][1]['title'] . " ";
    echo $bookshelf[3][1]['age']." ";
    
    foreach($bookshelf[1][2] as $b=>$n){
      echo $n . " " . "<br>";
    }
    foreach($bookshelf[2][2] as $b=>$n){
      echo $n . " ";
    }
    
    <meta charset='utf-8'>
    <?
    for ($i=0;$i<=70;$i+=10)// прямой цикл от 0 до 70 с шагом 10
      {
      echo "$i<br>";	//  выводим значение переменной i
      }
    for ($i=70;$i>=0;$i--) // обратный цикл от 70 до 0
      {
      echo "$i<br>";	
      }
    
    $kr=0;// переменные которые включают цветовой канал. r g b соответственно
    $kg=0;
    $kb=0;
    if($_GET['page']==1)// если страница 1 то активируем красный цвет
    {
    $kr=1;	
    }
    if($_GET['page']==2)
    {
    $kg=1;	
    }
    
    for ($i=0;$i<1000;$i++) //задаем массив стилей для 1000 дивов
      {
        $style[$i]['opacity']=mt_rand(0, 50)/100;	
        $style[$i]['top']=mt_rand(40, 1000);
        $style[$i]['left']=mt_rand(0,1000);
        $style[$i]['r']=$kr*mt_rand(0, 255);
        $style[$i]['g']=$kg*mt_rand(0, 255);
        $style[$i]['b']=$kb*mt_rand(0, 255);
        $style[$i]['width']=mt_rand(0, 300);
        $style[$i]['height']=mt_rand(0, 300);
      }
    
    for ($i=0;$i<1000;$i++)//выводим теги div с заданными стилями
      {
      echo "<div style='
      position:absolute;
      background-color:rgb({$style[$i]['r']},{$style[$i]['g']},{$style[$i]['b']});
      top:{$style[$i]['top']}px;
      left:{$style[$i]['left']}px;
      width:{$style[$i]['width']}px;
      height:{$style[$i]['height']}px;
      opacity:{$style[$i]['opacity']};
      '></div>";
      }
      
      for ($i=1;$i<=10;$i++)//выводим пагинацию
      {
      echo "<a href='?page=$i'>$i</a> | ";	
        
      }
      echo "<br>Вы находитесь на странице - ".$_GET['page'];// выводим страницы
      
      $i=0;
      while($i<1000)// пример цикла while
      {
      echo $i++;
      echo "<br>";
      }
       
    foreach ($style as $s)// пример цикла foreach
    {
    echo "<div style='
      position:absolute;
      background-color:rgb({$s['r']},{$s['g']},{$s['b']});
      top:{$s['top']}px;
      left:{$s['left']}px;
      width:{$s['width']}px;
      height:{$s['height']}px;
      opacity:{$s['opacity']};
      '></div>";
      
    } 
    
    
    for ($i=0;$i<1000;$i+=10)//пример вложенного цикла. выводим поле из div 1000 на 1000 пикселей
    {
      for ($j=0;$j<1000;$j+=10)
      {
      $r=mt_rand(0, 255);
      $g=mt_rand(0, 255);
      $b=mt_rand(0, 255);
      echo "<div style='
      position:absolute;width:10px;height:10px;
      left:$i;top:$j;	background-color:rgb($r,$g,$b);
      '>
      </div>";
      }
    
    }
      
    ?>

     

  • Задание по php ко второму уроку

    Задание:
    1. Указать переменную равную 1 и задать условие, если оно выполняется то выходит запись «иду в универ, будильник на 7 часов», если нет «отдыхаю, будильник на 9 часов». Испульзуя оперторы If…else
    2. Используя оператор Switch задать переменную i которая если будет равна яблоко выводить запись «это яблоко», если шоколад, « это шоколад», если пирог, « это пирог»

    <?php
    switch ($i) {
    case "яблоко":
    echo "i это яблоко";
    break;
    case "шоколадка":
    echo "i это шоколадка";
    break;
    case "пирог":
    echo "i это пирог";
    break;
    }
    ?>

    (код для программы)

    3. Создать форму для ответа на вопрос с несколькими вариантами ответа и выбором одного из них.

    1. Добавим в наш файл idex.php следующий код

     

    <?php
    $z = 1; // объявили переменную z
    
    if ( $z == 1 ) // задали условие если переменная равна 1, то …
    {
    echo "Иду в универ, будильник на 7 часов";
    } else // иначе программа выведет …
    {
    echo "Не иду в универ, будильник на 9 часов";
    }
    
    ?>

    Теперь смотрим результат:

    у2-11

    рис 1

    2. Добавим в наш файл idex.php следующий код:

    <?php
    echo "<br />"; 
    echo "<br />"; // для пустой строчки на экране
    $i = "шоколадка"; // значение переменной
    switch ($i) 
    {
    case "яблоко": // условие для вывода на экран i это яблоко
    echo "i это яблоко";
    break; // позволяет во всех остальных случаях ничего не выполнять
    case "шоколадка":
    echo "i это шоколадка";
    break;
    case "пирог":
    echo "i это пирог";
    break;
    }
    ?>

    Смотрим результат:

    у2-22

    рис 2

    3. Пример кода с тестом.

    Для создания формы необходимо использовать теги <form> и <input> и для второго тип radio и radio.

    <?
    $_POST['answer'];
    $_POST['answer1'];
    if(isset($_POST['answer']))
    {
    if($_POST['answer']=='a2')
    {
      $msg="Вы ответили правильно";
    }
    else
    {
      $msg="Вы ответили неверно";
    }
    }
    ?>
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Тег FORM</title>
    </head>
    <body>
    <h1><?=$msg;?></h1>
    <form method='post'>
    <p><b>Как по вашему мнению расшифровывается аббревиатура &quot;ОС&quot;?</b></p>
    <p>
    
    <input type="radio" name="answer" value="a1">Офицерский состав<Br>
    <input type="radio" name="answer" value="a2">Операционная система<Br>
    <input type="radio" name="answer" value="a3">Большой полосатый мух</p>
    
    
    <p><input type="submit"></p>
    </form>
    </body>
    </html>

     

    Перед тем как сохранить, не забыть указать кодировку и смотрим результат:

    у2-5

    рис 3

     l1_2 — Архив первых двух уроков