Программы PHP могут выполняться двумя способами: как сценарное приложение Web-сервером и как консольные программы. Поскольку, нашей задачей является программирование web-приложений, мы преимущественно будем рассматривать первый способ. Дело в том, что на PHP, как правило, используется сугубо для программирования приложений, связанных с Интернетом. Однако, PHP можно еще использовать в качестве интерпретатора командной строки, в основном в *nix-системах. При таком использовании PHP возможно решение следующих задач:
· создание приложений интерактивной командной строки;
· создание кросс-платформенных GUI приложений при помощи библиотеки PHP-GTK;
· автоматизация некоторых задач под Windows и Linux
Рассмотрим процесс выполнения php-сценария при обращении броузера к серверу. Итак, вначале броузер запрашивает страницу с расширением .php, после чего web-сервер пропускает программу через машину PHP и выдаёт результат в виде html-кода. Причем, если взять стандартную страницу HTML, изменить расширение на .php и пропустить её через машину PHP, последняя просто перешлёт её пользователю без изменений. Чтобы включить в этот файл команды PHP, необходимо заключить команды PHP в специальные теги:
<?php... ?> или <?...?>
Имена переменных начинаются с символа $, тип переменной объявлять не требуется. В отличие от имён функций и классов, имена переменных чувствительны к регистру. Переменные обрабатываются в строках, заключённых в двойные кавычки.
Инструкции завершаются точкой с запятой (;)
PHP является языком программирования с динамической типизацией, не требующим указания типа при объявлении переменных, равно как и самого объявления переменных. Преобразования между скалярными типами может осуществляться автоматически (хотя и имеются возможности для явного преобразования типов).
К скалярным типам данных относятся
· целый тип (integer),
· вещественный тип данных (float, double),
· логический тип (boolean),
· строковый тип (string)
· специальный тип NULL.
К нескалярным типам относится
· «ресурс» (resource),
· массив (array)
· и объект (object).
Среди наиболее часто используемых возможностей PHP стоит отметить следующие:
· имеется большой набор функций для работы со строками;
· работа с регулярными выражениями PCRE.
· работа с базами данных, осуществляемая посредством модулей:
§ php5-mysql для MySQL,
§ php5-pgsql для PostgreSQL
§ и др.
· для PHP разработаны средства шаблонирования веб-страниц, позволяющие эффективно разделить представление от модели, например Smarty;
· имеется библиотека для работы с графическими изображениями GD, позволяющая производить преобразования с графическими файлами, и создавать изображения «на лету».
Вот пример формы, которая передает эти пременные:
<form action ="mail.php" method="POST" name="form1">
<br>Введите ФИО:<br>
<input type="text" name="fio" >
<br>Введите email:<br>
<input type="text" name="email">
<br>Укажите тип доставки:<br>
<select name="delivery" size="1">
<option>Срочная
<option>Обычная
</select>
<br>Введите свой домашний адрес:<br>
<textarea name="address" rows="5" cols="30">
</textarea>
<br>
<br>Введите условие задачи:<br>
<textarea name="condition" rows="10" cols="30">
<input type="submit" value="Отправить">
</form>
Переменные от формы скрипту могут передаваться двумя методами, это: POST и GET.
К операторам выбора относят: условный оператор (if...else) и переключатель (switch). Синтаксис условного оператора: if(condition) statement 1 else statement 2
Условие condition может быть любым выражением. Если оно истинно, то выполняется оператор statement1. В противном случае выполняется оператор statement2. Допустима сокращенная форма записи условного оператора, в которой отсутствуют else и оператор statement2, напимер:
if (!empty($regis)){…}
else{…}
В данном проекте также использовалась возможность работы с базами данных:
MySQL - это одна из самых популярных и самых распространенных СУБД (система управления базами данных) в интернете. Она не предназначена для работы с большими объемами информации, но ее применение идеально для интернет сайтов, как небольших, так и достаточно крупных.
MySQL отличатся хорошей скоростью работы, надежностью, гибкостью. Работа с ней, как правило, не вызывает больших трудностей. Поддержка сервера MySQL автоматически включается в поставку PHP.
Немаловажным фактором является ее бесплатность. MySQL распространяется на условиях общей лицензии GNU (GPL, GNU Public License).
Структурированный язык запросов SQL позволяет производить различные операции с базами данных: создавать таблицы, помещать, обновлять и удалять из них данные, производить запросы из таблиц и т.д. Далее мы последовательно рассмотрим все эти операторы.
CREATE DATABASE
Эта команда создает новую базу данных:
CREATE DATABASE db_name;
Здесь db_name является именем создаваемой базы данных. Для того чтобы создать новую базу данных forum, наберите в строке-приглашении клиента MySQL mysql> эту команду и укажите название базы данных:
mysql> CREATE DATABASE forum;
CREATE TABLE
Команда CREATE TABLE создает новую таблицу в выбранной базе данных и которая в простейшем случае имеет следующий синтаксис:
CREATE TABLE table_name [(create_definition, ...)]
Здесь table_name - имя создаваемой таблицы
Команда ALTER TABLE позволяет изменить структуру таблицы. Эта команда позволяет добавлять и удалять столбцы, создавать и уничтожать индексы, переименовывать столбцы и саму таблицу. Команда имеет следующий синтаксис:
ALTER TABLE table_name alter_spec
Команда DROP TABLE предназначена для удаления одной или нескольких таблиц:
DROP TABLE table_name [ ,table_name,...]
К примеру, для удаления таблицы forums нужно выполнить следующий SQL-запрос:
mysql> DROP TABLE forums;
Команда DROP DATABASE удаляет базу данных со всеми таблицами входящими в её состав:
DROP DATABASE database_name
Удалим, например, базу данных forum:
mysql> DROP DATABASE forum;
Команда INSERT…VALUES вставляет новые записи в существующую таблицу. Синтаксис команды:
INSERT INTO table_name VALUES (values,…)
После оператора VALUES в скобках через запятую перечисляются значения соответствующих полей таблицы в соответствии с их типами.
DELETE FROM table_name [WHERE definition]
Команда DELETE удаляет из таблицы table_name записи, удовлетворяющие заданным в definition условиям, и возвращает число удаленных записей.
Вот как можно удалить все записи из таблицы authors:
mysql> DELETE FROM authors;
Важной частью запросов DELETE, UPDATE и SELECT является оператор WHERE, который позволяет задать условия для выбора записей, на которые будут действовать эти команды. Следующий запрос удаляет из таблицы посетителя, первичный ключ для которого равен 1:
mysql> DELETE FROM authors WHERE id_author = 1;
Условия отбора могут быть значительно сложнее, так в листинге 13.16 удаляются все авторы с паролем '123' и первичный ключ которых превышает 10:
mysql> DELETE FROM authors WHERE passw = '123' AND id_author > 10;
Оператор AND является логическим "и". В запросах можно так же применять логическое или "или".
Команда SELECT предназначена для извлечения строк данных из одной или нескольких таблиц и имеет в общем случае следующий синтаксис:
SELECT column,...
[FROM table WHERE definition]
[ORDER BY col_name [ASC | DESC], ...]
[LIMIT [offset], rows]
Здесь column - имя выбираемого столбца. Можно указать несколько столбцов через запятую. Если необходимо выбрать все столбцы можно просто указать знак звёздочки *. Ключевое слово FROM указывает таблицу table из которой извлекаются записи. Ключевое слово WHERE определяет, так же как и в операторе DELETE определяет условия отбора строк. Ключевое слово ORDER BY сортирует строки запросов по столбцу col_name в прямом (ASC) или обратном порядке (DESC). Ключевое слово LIMIT сообщает MySQL об выводе только rows запросов начиная с позиции offset.
Для того чтобы посмотреть всю таблицу User_inf выполняется следующий запрос:
mysql> SELECT * FROM User_inf;
Для подключения к php базы данных используются стандартные функцию php, как mysql_connect(), одновременно можно подключиться как к одной, так и к нескольким базам, в данном проекте реализуется работа с одной базой данных:
<?php
@mysql_connect("localhost","php","123456");
$sel=mysql_select_db("tec");
$sql="INSERT INTO User_inf(f_name,l_name,data_r,pol,mail) VALUES('".$sname."','".$name."','".$bdate."','".$pol."','".$mail."')";
$res=mysql_query($sql);
$sql="select id_user from User_inf";
$n=mysql_num_rows($res);
$row=mysql_fetch_($res);
echo $row[$n];
Страницы: 1, 2, 3, 4, 5