Функция htmlspecialchars()
Не нашли? Я подскажу. Введите, например, в поле "имя" двойную кавычку и какой-нибудь текст, например, "123. Отправьте форму, и взгляните на исходный код полученной страницы. В четвертой строке будет что-то наподобие: Введите Ваше имя: <input type="text" name="name" value=""123">
То есть - ничего хорошего. А если бы хитрый пользователь ввел JavaScript -код? Для решения этой проблемы необходимо воспользоваться функцией htmlspecialchars(), которая заменит служебные символы на их HTML -представление (например, кавычку - на "): Листинг form_ 7.php <html> <body> <? $name = isset($_POST['name'])? htmlspecialchars($_POST['name']):''; $year = isset($_POST['year'])? htmlspecialchars($_POST['year']): ''; if (isset($_POST['name'], $_POST['year'])) { if ($_POST['name'] == '') { echo ' Укажите имя!<br>'; } else if ($_POST['year'] < 1900 || $_POST['year'] > 2004) { echo 'Укажите год рождения! Допустимый диапазон значений: 1900..2004<br>'; } else { echo 'Здравствуйте, '. $ name. '!<br>'; $age = 2004 - $_POST['year']; echo ' Вам '. $age. ' лет <br>'; } echo '<hr>'; } ?> <form method="post" action="<?=$_SERVER['PHP_SELF']?>"> Введите Ваше имя: <input type="text" name="name" value="<?=$name?>"> <br> Введите Ваш год рождения: <input type="text" name="year" value="<?=$year?>"> <input type="submit" value="OK"> </form> </body> </html>
Повторите опыт и убедитесь, что теперь HTML-код корректен.
Запомните - функцию htmlspecialchars() необходимо использовать всегда, когда выводится содержимое переменной, в которой могут присутствовать спецсимволы HTML. Применение функции phpinfo() для отладки
Функция phpinfo() - одна из важнейших в PHP. Она выводит информацию о настройках PHP, значения всевозможных конфигурационных переменных... Почему она упоминается в главе, посвященной формам? Потому что функция phpinfo() - удобнейшее средство отладки.
Функция phpinfo(), помимо прочего, выводит значения всех $_GET, $_POST и $_SERVER - переменных. Так что, если переменная формы "потерялась", самый простой способ обнаружить, в чем дело - воспользоваться функцией phpinfo(). Для того, чтобы функция выводила только значения переменных (и Вам не пришлось прокручивать десяток страниц), ее следует вызвать следующим образом: phpinfo(INFO_VARIABLES); или - что абсолютно то же самое: phpinfo(32); Листинг form_8.php <html> <body> <form method="post" action="<?=$_SERVER['PHP_SELF']?>"> Введите Ваше имя: <input type="text" name="name"> <input type="submit" value="OK"> </form> <? phpinfo(32); ?> </body> </html>
Или, например, такая ситуация: вы хотите узнать IP -адрес посетителя. Вы помните, что соответствующая переменная хранится в массиве $_SERVER, но - вот незадача - забыли, как именно переменная называется. Опять же, вызываем phpinfo(32);, ищем в табличке свой IP -адрес и находим его - в строке _SERVER["REMOTE_ADDR"]:
Что такое MySQL
MySQL – компактный многопоточный сервер баз данных. MySQL характеризуется большой скоростью, устойчивостью и легкостью в использовании. MySQL был разработан компанией TcX для быстрой обработки очень больших баз данных. Компания утверждает, что использует MySQL с 1996 года на сервере с более чем 40 БД, которые содержат 10.000 таблиц, из которых около 500 имеют более 7 миллионов строк (24.01.2004). MySQL является идеальным решением для малых и средних приложений. Исходники сервера компилируются на множестве платформ. Наиболее полно возможности сервера проявляются на Unix -серверах, где есть поддержка многопоточности, что дает значительный прирост производительности. На текущий момент MySQL все еще в стадии разработки, хотя версии 3.22 и более поздние полностью работоспособны. MySQL -сервер является бесплатным для некоммерческого использования. Для коммерческого использования необходимо приобрести лицензию, стоимость которой составляет 190 EUR.
Возможности MySQL MySQL поддерживает язык запросов SQL в стандарте ANSI 92, и кроме этого имеет множество расширений к этому стандарту, которых нет ни в одной другой СУБД. Краткий перечень возможностей MySQL: ● Поддерживается неограниченное количество пользователей, одновременно работающих с базой данных. ● Количество строк в таблицах может достигать 50 млн. ● Быстрое выполнение команд. Возможно MySQL самый быстрый сервер из существующих серверов. ● Простая и эффективная система безопасности. MySQL действительно очень быстрый сервер, но для достижения этого разработчикам пришлось пожертвовать некоторыми требованиями к реляционным СУБД. В MySQL отсутствуют: ● Поддержка вложенных запросов, типа SELECT * FROM table1 WHERE id IN (SELECT id FROM table2). ● Не реализована поддержка транзакций. Взамен предлагается использовать LOCK/UNLOCK TABLE. ● Нет поддержки триггеров и хранимых процедур. По словам создателей именно эти пункты дали возможность достичь высокого быстродействия. Их реализация существенно снижает скорость сервера. Эти возможности не являются критичными при создании web-приложений, что в сочетании с высоким быстродействием и малой ценой позволило серверу приобрести большую популярность.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|