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.

Глава 8. Простейшие серверные Web-страницы. Вывод данных 221<br />

Далее идет условное выражение, извлекающее значение аргумента file и<br />

присваивающее его переменной $colname_categories. Его стоит рассмотреть<br />

подробнее.<br />

Встроенная функция isset возвращает true, если переданная ей в качестве<br />

параметра переменная (или элемент массива, как в нашем случае) объявлена,<br />

и false в противном случае. Эта функция используется в условии для<br />

проверки, существует ли элемент массива $_GET С индексом file, или, говоря<br />

другими словами, передали ли данной странице аргумент file.<br />

Если аргумент file был передан, то его значение нужно присвоить переменной<br />

$colname_Categories (если же нет, то эта переменная так и будет<br />

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

$colname_Categories = (get_magic_quotes_gpc()) ? $_GET['file'] :<br />

4>addslashes($_GET['file']) ;<br />

Здесь возникает проблема, которую Dreamweaver пытается разрешить. Дело<br />

в том, что в строковых значениях РНР недопустимы некоторые символы (например,<br />

двойные кавычки). А если аргумент file будет иметь значение, содержащее<br />

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

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

предварить знаком "обратный слеш" (\). Этим и занимается функция<br />

addslashes.<br />

Но есть и другая проблема. Обработчик РНР может быть настроен таким<br />

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

предварять все недопустимые символы "обратным слешем" (так называемый<br />

"параметр magic_quotes_gpc"). Выходит, что нужно еще и проверять,<br />

включен этот параметр или отключен; если же он включен, то функцию<br />

addslashes вызывать не нужно. За это "отвечает" функция, возвращающая<br />

логическое значение true, если параметр magic_quotes_gpc включен, и<br />

false в противном случае.<br />

Вот поэтому выражение, извлекающее значение аргумента file и присваивающее<br />

его переменной $colname_categories, такое сложное. Dreamweaver<br />

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

получается.<br />

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

кода SQL-запроса переменной $query_categories. Давайте посмотрим<br />

на него еще раз:<br />

$query_Categories = sprintf("SELECT id, name FROM categories WHERE<br />

4>file = %s ORDER BY id ASC", $colname_Categories);<br />

Здесь используется очередная не знакомая нам встроенная функция<br />

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

первым аргументом, ищет в нем так называемые шаблоны и заменяет их зна-

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

Saved successfully!

Ooh no, something went wrong!