Виктор Гольцман - MySQL 5.0. Библиотека программиста стр 38.

Шрифт
Фон

INSERT INTO Customers

(name,phone,address)

VALUES (\'д\\'Артаньян\',\'Телефон\',\'Адрес\');

Кроме того, в ряде случаев функция mysql_real_escape_string() позволяет обезопасить PHP-приложение от SQL-инъекций, то есть предотвратить выполнение SQL-команд, которые недобросовестный пользователь может ввести в текстовые поля на веб-странице.

Исправим сценарий save.php, добавив вызов функции mysql_real_escape_string() (листинг 4.9).

Листинг 4.9. Сохранение данных в базе

<html>

<head>

<title>Работа с MySQL</title>

</head>

<body>

<?php

//Отключаем вывод системных сообщений об ошибках

error_reporting(0);

//Получаем данные из формы input.php

$phone=$_POST["CustomerPhone"];

//Если номер телефона не введен, то связаться с клиентом невозможно.

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

if(empty($phone) or ($phone == "(495)"))

{

print "<h3>Пожалуйста, введите номер телефона</h3>";

print "<input type=\'button\' value=\'Вернуться к редактированию данных\'

onClick=\'history.go(-1)\'";

}

//Если номер телефона введен, продолжаем обработку данных

else

{

//Получаем из формы имя и адрес клиента

$name=$_POST["CustomerName"];

$address=$_POST["CustomerAddress"];

//Соединяемся с сервером MySQL

$connection = mysql_connect("localhost","username","userpassword");

if(!$connection) die("Ошибка доступа к базе данных.

Приносим свои извинения");

//Выбираем базу данных SalesDept (Отдел продаж)

//В случае ошибки формируем сообщение, записываем его в файл

//и отправляем по электронной почте

if(!mysql_select_db("SalesDept"))

{

$err_message=date("Y.m.d H:i:s")."

".mysql_errno()." ".mysql_error()."\r\n";

error_log($err_message,3,"/mysqlerror.log");

error_log($err_message,1,"admin@somedomain.ru");

die("Ошибка доступа к базе данных. Приносим свои извинения");

}

//Устанавливаем кодировку CP-1251

mysql_query("SET NAMES cp1251");

//Записываем данные о заказчике в таблицу Customers (Клиенты)

$qresult = mysql_query("INSERT INTO Customers (name,phone,address)

VALUES

(\'".mysql_real_escape_string($name)."\',

\'".mysql_real_escape_string($phone)."\',

\'".mysql_real_escape_string($address)."\')");

//Проверяем результат выполнения команды; в случае ошибки формируем //

сообщение, записываем его в файл и отправляем по электронной почте

if(!$qresult)

{

$err_message=date("Y.m.d H:i:s")."

".mysql_errno()." ".mysql_error()."\r\n";

error_log($err_message,3,"/mysqlerror.log");

error_log($err_message,1,"admin@somedomain.ru");

die("Ошибка при сохранении данных. Приносим свои извинения");

}

print "<h3>Поздравляем! Регистрация завершена успешно</h3>";

}

?>

</body>

</html>

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

Итоги

В разделе 4.1 "Интерфейс с PHP" вы познакомились с примерами PHP-приложений, использующих базу данных MySQL. Все они имеют сходную структуру:

• подключение к серверу MySQL;

• выбор базы данных;

• установка кодировки;

• выполнение SQL-команды (ввод, изменение или получение данных);

• обработка ошибки.

При этом мы рассмотрели только самые необходимые для взаимодействия с MySQL функции языка PHP. Полный список этих функций вы можете найти в Руководстве по PHP на странице http://www.php.net/manual/ru/ref.mysql.php.

В следующем разделе мы поговорим о том, как взаимодействуют с базой данных веб-приложения на языке Perl.

4.2. Интерфейс с Perl

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

Выбор платформы для развертывания Perl-приложения аналогичен выбору платформы для PHP-приложения: вы можете воспользоваться хостингом с поддержкой Perl и MySQL либо установить на своем компьютере веб-сервер Apache и интерпретатор языка Perl. При этом все замечания и рекомендации из подраздела "Выбор платформы" остаются в силе.

В последующих примерах мы будем использовать пакет XAMPP, установку которого мы описывали в подразделе "Установка пакета XAMPP". Кроме того, нам потребуются дополнительные модули Perl DBI (Database Interface – интерфейс к базе данных) и Perl CGI (Common Gateway Interface – стандартный интерфейс между сценарием и веб-сервером). Об их установке вы узнаете из следующего подраздела.

Установка дополнительных модулей Perl

Чтобы установить модули Perl DBI и Perl CGI, выполните следующие действия.

1. Скачайте дистрибутив пакета Perl Add-Ons. Для этого на веб-странице http://www.apachefriends.org/en/xampp-windows.html найдите раздел XAMPP for Windows Add-Ons и в подразделе Perl щелкните на ссылке Installer.

2. После загрузки файла xampp-win32-perl-addon-xxx-xxx-installer. exe запустите его, дважды щелкнув на его значке.

3. Выберите язык установки Russian (рис. 4.15) и нажмите кнопку OK.

Виктор Гольцман - MySQL 5.0. Библиотека программиста

Рис. 4.15. Выбор языка установки

4. В начальном окне мастера установки (рис. 4.16) нажмите кнопку Далее.

Виктор Гольцман - MySQL 5.0. Библиотека программиста

Рис. 4.16. Начальное окно мастера установки

5. В окне выбора папки установки (рис. 4.17) по умолчанию предлагается корневая папка XAMPP. Ничего не меняя, нажмите кнопку Далее.

Виктор Гольцман - MySQL 5.0. Библиотека программиста

Рис. 4.17. Выбор папки установки

6. После окончания установки нажмите кнопку Готово (рис. 4.18).

Виктор Гольцман - MySQL 5.0. Библиотека программиста

Рис. 4.18. Завершение установки

Итак, дополнительные модули Perl установлены. Теперь мы можем приступить к созданию приложений Perl.

Тестирование Perl

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

1. Запустите стандартную программу Windows Блокнот (Пуск → Все программы → Стандартные → Блокнот).

2. В окне программы Блокнот введите следующий код (рис. 4.19):

#!"C:\Program Files\xampp\perl\bin\perl.exe"

print "Content-type: text/html; charset=windows-1251\n\n";

print "Работа с MySQL";

Виктор Гольцман - MySQL 5.0. Библиотека программиста

Рис. 4.19. Простейшее Perl-приложение

...

Внимание!

В первой строке любого сценария Perl после символов #! необходимо указать путь к интерпретатору Perl: "<Путь к корневой папке XAMPP>\perl\bin\perl.exe". Вывод текста или HTML-кода нужно предварять строкой print "Content-type: text/html; charsert = windows-1251\n\n";, которая указывает тип выводимой информации.

3. Для сохранения файла нажмите комбинацию клавиш Ctrl+S. В стандартном окне Windows Сохранить как откройте корневую папку XAMPP, а в ней – папку cgi-bin. Введите имя файла: test.pl и нажмите кнопку Сохранить.

4. Запустите Internet Explorer (Пуск → Все программы → Internet Explorer) или любой другой браузер. В адресной строке браузера введите следующий адрес: http:// localhost/cgi-bin/test.pl. Появление текста "Работа с MySQL" (рис. 4.20) на вебстранице означает, что Perl-приложения выполняются нормально.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub