Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5_semestr / Интерактивное программирование web-приложений / Интерактивное программирование web-приложений.doc
Скачиваний:
51
Добавлен:
29.03.2016
Размер:
532.99 Кб
Скачать

Имена переменных кнопки-изображения

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

<input type="image" src="image.gif" name="sub" />

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

Http Cookies

PHP явно поддерживает HTTP cookies как определено в » спецификации Netscape. Cookies- это механизм для хранения данных в удаленном браузере и отслеживания и идентификации таким образом вернувшихся пользователей. Вы можете установить cookies, используя функциюsetcookie(). Cookies являются частью HTTP-заголовка, поэтому функция SetCookie должна вызываться до того, как браузеру будет отправлен какой бы то ни было вывод.

Если вы хотите присвоить множество значений одной переменной cookie, вы можете присвоить их как массив. Например:

<?php   setcookie("MyCookie[foo]", "Тест 1", time()+3600);   setcookie("MyCookie[bar]", "Тест 2", time()+3600); ?>

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

<?php if (isset($_COOKIE['count'])) {     $count = $_COOKIE['count'] + 1; } else {     $count = 1; } setcookie("count", $count, time()+3600); setcookie("Cart[$count]", $item, time()+3600); ?>

Любой сценарий PHP состоит из последовательности инструкций. Инструкцией может быть присваивание, вызов функции, повтор кода (цикл), сравнение, или даже инструкция, которая ничего не делает (пустой оператор). После инструкции обычно ставится точка с запятой. Кроме того, инструкции могут быть объединены в блоки заключением их в фигурные скобки. Блок инструкций также сам по себе является инструкцией.

if

Конструкция ifявляется одной из наиболее важных во многих языках программирования, в том числе и PHP. Она предоставляет возможность условного выполнения фрагментов кода. Структураifреализована в PHP по аналогии с языком C:

if (выражение)

инструкция

Следующий пример выведет a больше чем b если значение переменной $aбольше чем$b:

<?php if ($a > $b)     echo "a больше чем b"; ?>

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

<?php if ($a > $b) {     echo "a больше, чем b";     $b = $a; } ?>

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

if (условие) // true или false

Инструкция;

$shop = true;

if ($shop)

echo "Иду в магазин";

echo "Иду домой";

if (условие){

Инструкция 1;

Инструкция 2;

}

$shop = true;

if ($shop){

echo "Иду в магазин";

echo "Покупаю молоко";

}

Управление выполнением программы: if else

Управление выполнением программы: elseif

Управление выполнением программы: elseif

Управление выполнением программы: switch

Управление выполнением программы: switch

Основы PHP – циклы

Операторы: инкремента и декремента

++ Увеличивает значение переменной на единицу

-- Уменьшает значение переменной на единицу

PRE инкремент/декремент

++$a Увеличивает $a на единицу и

возвращает значение $a.

--$a Уменьшает $a на единицу и

возвращает значение $a.

POST инкремент/декремент

$a++ Возвращает значение $a, а затем

увеличивает $a на единицу.

$a-- Возвращает значение $a, а затем

уменьшает $a на единицу.

Циклы: for

Циклы: while

while (условие){

Инструкция 1;

Инструкция 2;

...

}

$sum = 1

while ($i<=30){

$sum += 3;

$i++;

print($sum);

}

Циклы: do… while

do{

Инструкция 1;

Инструкция 2;

...

}while(условие)

$i = 1;

$sum = 1;

do{

$sum += 3;

$i++;

print($sum);

}while($i<=30)

Управление циклами

Цикл: foreach (короткий)

foreach ($array as $value){

Инструкция;

}

//$value - доступ к значению элемента массива

$user = array("John",

"root",

"p@ssw0rd",

"312-34-85");

foreach($user as $val){

print("$val<BR>");

}

Функции: описание и вызов

Функция – программный блок, который может многократно выполняться в любом месте сценария.

/* Описание функции */

function sayHello(){

echo "Hello, world!";

}

/* Вызов функции*/

sayHello();

/* Проверка */

if(function_exists("sayHello")){}

Функции и их аргументы: описание и вызов

function sayHello($name){

echo "Hello, $name!", "<hr>";

}

//Вызываем функцию, вариант 1

sayHello("Иван");

//Вызываем функцию, вариант 2

$name = "Петр";

sayHello($name);

//Вызываем функцию, вариант 3

$func = "sayHello";

$func("Игорь");

Функции: аргументы по умолчанию

function sayHello($name="Гость"){

echo "Hello, $name!", "<hr>";

}

sayHello("Иван"); // Hello, Иван!

sayHello("Петр"); // Hello, Петр!

sayHello(); // Hello, Гость!

Функции: области видимости

$a = 1; // глобальная область видимости

function Test(){

echo $a; // локальная область видимости

}

Test(); // Не выведет ничего.

$a = 1; $b = 2;

function Sum(){

global $a, $b;

$b = $a + $b;

}

Sum();

echo $b; //Выведет 3

//Другой вариант

function Sum(){

$GLOBALS["b"] = $GLOBALS["a"] +

$GLOBALS["b"];

}

Функции: статические переменные

function Test(){

$a = 0;

echo $a++;

}

Test(); //Выведет 0

Test(); //Выведет 0

Test(); //Выведет 0

function Test(){

static $a = 0;

echo $a++;

}

Test(); //Выведет 0

Test(); //Выведет 1

Test(); //Выведет 2

Функции: возврат значений

function getSum($num1, $num2){

return $num1 + $num2;

}

$result = getSum(10, 435);

echo $result;

//или

echo getSum(10, 435);

Рекурсивный вызов функций

function factorial($n)

{

if ($n == 0) return 1;

return $n * factorial($n-1);

}

$result = factorial(5)

echo "5! = " . $result;

Функции для работы с переменными

Нижеперечисленные функции возвращают TRUE или FALSE

в зависимости от того, соответствует ли выражение

указанному типу.

is_array(expression)

is_bool(expression)

is_float(expression)

is_integer(expression)

is_numeric(expression)

is_string(expression)

is_null(expression)

intval(expression [, int base])

Возвращает целочисленное значение аргумента.

floatval(expression)

Возвращает вещественное значение аргумента.

Математические функции

max – Возвращает наибольшее число из заданых.

acos – Возвращает значение арккосинуса

значения.

cos – Возвращает косинус числа в радианах.

min – Возвращает наименьшее число из заданых.

decbin – Возвращает двоичное представление

целого числа.

log - Возвращает натуральный логарифм

значения.

pi – Возвращает приблизительное число пи.

rad2deg – Возвращает в градусах значение

аргумента заданного в радианах.

round – Возвращает округленное до ближайшего

целого числа значение заданное аргументом.

sqrt – Извлечение квадратного корня из числа.

rand – Возвращает число, лежащее между двумя

необязательными аргументами включительно.

Работа с протоколом HTTP – формы

Обработка запросов

Для GET:

$name = $_GET["name"];

$age = $_GET["age"] * 1;

Для POST:

$name = $_POST["name"];

$age = $_POST["age"] * 1;

Передача и обработка массивов

<input type=checkbox name='kurs[]' value='PHP'>

<input type=checkbox name='kurs[]' value='ASP'>

<input type=checkbox name='kurs[]' value='Perl'>

<input type=checkbox name='kurs[]' value='JS'>

//Принимаем значения

$courses = $_POST["kurs"];

//Далее работаем с массивами...

count($courses);

Cookie

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

Cookie: первый запрос страницы

GET /folder/index.php?name=Vasya HTTP/1.1

Host: www.specialist.ru

Accept: */*

Accept-Language: ru

Referrer: http://yandex.ru/yandsearch?text=Rehc

User-Agent: Mozilla 4.0 (compatible; MSIE 6.1,…)

HTTP/1.1 200 OK

Server: Microsoft IIS 6

Content-Type: text/html

Content-Length: 16345

Last-Modified: Sun, 03 Jul 2005 18:00:00 GMT

Set-Cookie: userName=Vasya

Cookie: другие запросы страниц

GET /folder/index.php HTTP/1.1

Host: www.specialist.ru

Accept: */*

Accept-Language: ru

Referrer: http://yandex.ru/yandsearch?text=Rehc

User-Agent: Mozilla 4.0 (compatible; MSIE 6.1,…)

Cookie: userName=Vasya

HTTP/1.1 200 OK

Server: Microsoft IIS 6

Content-Type: text/html

Content-Length: 16345

Last-Modified: Sun, 03 Jul 2005 18:00:00 GMT

Cookie: параметры

int setcookie (string name [, string value [,

int expire [, string path [, string domain

[, int secure]]]]])

  1. Имя куки. Только латинские буквы, цифры, символ

  2. подчеркивания и дефис. Все другие символы будут

  3. преобразованы в символ подчеркивания

  4. Значение параметра

  5. Дата истечения срока годности

  6. Путь, который определяет, в какой части домена

  7. может использоваться данный файл cookie

  8. Домен

  9. Указание, что данные cookie должны передаваться

  10. только через безопасное соединение HTTPS.

Cookie: создание

setcookie ("TestCookie", $value);

setcookie ("TestCookie", $value,time()+3600);

/* период действия - 1 час */

setcookie ("TestCookie", $value,time()+3600,

"/docs/", ".site.com", 1);

//Ошибка. Произведен вывод до установки cookie

<?php

echo "Hello!";

$color = "red";

setcookie("BG", $color, time()+3600);

?>

Cookie: чтение

echo $_COOKIE["TestCookie"];

//Пример создания массива из разных cookies

while(list($name,$value) = each($_COOKIE)){

// для последовательности значений

$array[]=$value;

// для ассоциативного массива

$array[$name]=$value;

}

Cookie: массивы и cookie

//Создаем массив

$array = array(

"name"=>"John",

"login"=>"root",

"pass"=>"p@ssw0rd");

// Упаковываем массив в строку

$str = serialize($array);

//Сохраняем массив в cookie

setcookie('user',$str, time() + 3600);

//Считываем строку и переводим в массив

$array = unserialize($_COOKIE['user']);

Cookie: удаление

setcookie("TestCookie")

setcookie("TestCookie", "")

setcookie ("TestCookie", "", time() - 3600);

Сессии: создание и использование

//Начало или продолжение сессии

session_start();

$_SESSION //В этом массиве всѐ и хранится

$_SESSION["user"] = "John";

echo $_SESSION["user"];

//Удаление

unset($_SESSION["user"]);

session_destroy();

session_id();// id сессии

session_name();// Имя сессии

Получение сведений о файлах

//Существует ли файл?

file_exists("test.txt")

//Узнаем размер файла

filesize("test.txt");

//Дата последнего обращения к файлу

fileatime("test.txt");//date("d M Y", $atime);

//Дата изменения файла

filemtime("test.txt");//date("d M Y", $mtime);

//Дата создания файла(Windows)

filectime("test.txt");//date("d M Y", $ctime);

Алгоритм работы с сервером баз данных

  1. Устанавливаем соединение с сервером БД

  2. Выбираем базу данных для работы

  3. Посылаем запрос

  4. При необходимости(SELECT), работаем с

  5. выбранными данными

  6. Закрываем соединение

Подключение необходимых расширений в php.ini

php_pdo.dll

php_pdo_mysql.dll

php_mysql.dll

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

$conn = mysql_connect("host","login","pass")

mysql_close([$conn])

$conn = @mysql_connect("localhost", "root", "1234")

or die("Ошибка!");

//

//

//

mysql_close([$conn]);

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

mysql_select_db(string db, [$conn]);

mysql_errno ([$conn]);

mysql_error ([$conn]);

$conn = @mysql_connect("localhost", "root",

"1234") or die("Ошибка!");

mysql_select_db("news");

if(mysql_errno() > 0){

echo mysql_errno(). ": ". mysql_error();

}

mysql_close([$conn]);

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

$result = mysql_query(string query[, $conn])

$row = mysql_fetch_array($result[, type])

//По умолчанию

mysql_fetch_array($result, MYSQL_BOTH)

//Индексированный массив

mysql_fetch_array($result, MYSQL_NUM)//Что и

mysql_fetch_row($result)

//Ассоциативный массив

mysql_fetch_array($result, MYSQL_ASSOC)//Что и

mysql_fetch_assoc($result)

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

//Точечная выборка

mysql_result($result, int row, string field)

mysql_num_rows($result)//Количество записей

mysql_num_fields($result)//Кол-во полей

mysql_field_name($result, int field)//Имя поля

$result = mysql_query("SELECT * FROM news");

echo mysql_num_rows($result);

mysql_affected_rows([$conn])//Кол-во изменений

mysql_query("DELETE FROM news WHERE pubDate =

'2005-06-11'");

echo mysql_affected_rows();

mysql_insert_id([$conn])//id последней записи