Главная | Обратная связь
МегаЛекции

Функция htmlspecialchars()





 

Не нашли? Я подскажу. Введите, например, в поле "имя" двойную кавычку и какой-нибудь текст, например, "123. Отправьте форму, и взгляните на исходный код полученной страницы. В четвертой строке будет что-то наподобие:

Введите Ваше имя : <input type="text" name="name" value=""123">

 

 

 


То есть - ничего хорошего. А если бы хитрый пользователь ввел JavaScript-код?

Для решения этой проблемы необходимо воспользоваться функцией htmlspecialchars(), которая заменит служебные символы на их HTML-представление (например, кавычку - на &quot;):

Листинг 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- 2019 megalektsii.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.