22.04.2014 Views

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Глава 9. Реализация ввода и правки данных 251<br />

То есть страница Category_add.<strong>php</strong>, созданная Dreamweaver, работает так:<br />

1. При первом открытии, поскольку странице вообще не были переданы<br />

никакие данные методом POST, будет выведена форма.<br />

2. После ввода данных в форму посетитель нажимает кнопку Добавить,<br />

и данные передаются методом POST ЭТОЙ же странице.<br />

3. Страница открывается во второй раз. Сценарий РНР снова проверяет,<br />

были ли ей переданы данные методом POST, И, поскольку они были переданы,<br />

обрабатывает их. Форма в этом случае не выводится, а выполняется<br />

переход на страницу списка категорий Categoriesadmin.<strong>php</strong>.<br />

А теперь давайте подробно, строка за строкой, разберем сценарий обработки<br />

данных.<br />

if ((isset($_POST["MM_insert"l)) &&<br />

4>($_P0ST["MM_insert"] == "category_add")) {<br />

Здесь проверяется, был ли передан данной странице методом POST аргумент<br />

MM_insert со значением category_add — содержимое скрытого поля, созданного<br />

Dreamweaver в нашей форме. Если он был передан, выполняется<br />

весь последующий блок.<br />

$insertSQL = sprintf("INSERT INTO categories (name, file) VALUES (%s,<br />

^%s) ", GetSQLValueString($_POST['name'], "text"),<br />

^GetSQLValueString(isset($_POST['file']) ? "true" :<br />

4>"defined", "1", "0")) ;<br />

Переменная $insertsQL получает значение — код запроса SQL добавления<br />

записи. Для его создания опять используется встроенная функция sprintf,<br />

выполняющая замену присутствующих в строке шаблонов реальными значениями.<br />

Также в этом выражении используется не знакомая нам функция<br />

GetSQLValueString. Это не встроенная функция — ее объявил сам Dreamweaver<br />

в самом начале сценария, соответствующего серверному поведению Insert<br />

record. Она занимается тем, что преобразует переданное ей первым аргументом<br />

значение так, чтобы оно было воспринято MySQL, и возвращает его как<br />

результат. При этом она руководствуется значением второго аргумента, которое<br />

задает тип данных преобразуемого значения. Так, если вторым аргументом<br />

передана строка text, то первый аргумент должен быть обработан<br />

как значение строкового типа (взят в одинарные кавычки).<br />

Если же вторым аргументом функции GetSQLValueString передана строка<br />

defined, эта функция поступит следующим образом. Если первый аргумент<br />

содержит непустую строку, она вернет значение, переданное необязательным<br />

третьим аргументом. Если же передать этой функции первым аргументом<br />

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!