PHP: торгуй смело!

Никита Кислицин

Xakep, номер #056, стр. 056-078-3


Первым делом инициализируется сессия. На большинстве серверов в установках сказано, что передача идентификатора сессии осуществляется принудительно в кукисах, поэтому передавать его через url нет никакой необходимости. Процедура session_start принимает необязательный параметр - идентификатор сессии. Поэтому если ты столкнулся с тем, что приходится передавать session id GET-запросом, то для инициализации сессии придется выдать имя переменной, в которой лежит требуемый указатель: session_start($SID).

После этого при помощи массива $HTTP_SESSION_VARS можно получать сохраненные в предыдущем сеансе значения некоторых переменных. Можно это делать и просто по имени, но тут следует быть осторожным - если вдруг случится так, что в сессии нет такой переменной, злоумышленник сможет подсунуть в нее все что угодно через GET-запрос. Поэтому просто уничтожаем значение переменной перед инициализацией сессии, что обрубает все возможные ходы хакеру: unset($var).

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

На этом все, сам код ты найдешь на CD, а что касается работы с сессиями, то я более чем подробно осветил эту тему. Удачи тебе, пиши, если что. Сейчас я свободен, поэтому с удовольствием отвечу на твои письма. Кроме тех, конечно, что упомянуты во врезке "Спрашивали? Отвечаю!" :).

Спрашивали? Отвечаю!

(Q) Я запускаю PHP-скрипт, а он открывается в блокноте!

(A) Чтобы запустить PHP-сценарий, не надо по нему кликать. Это обычный текстовый файл и, разумеется, он может быть открыт текстовым процессором. Для запуска скрипта следует установить веб-сервер Apache и интерпретатор PHP. Более подробно об этом написано на www.ya.ru.

(Q) В двух словах, как работать с базами данных?

(A) Последовательность действий:

1) Подключение к серверу БД при помощи mysql_connect();

2) Составление sql-запроса. Это обычная текстовая строка, которая посылается серверу БД.

3) При помощи функции mysql_query() отсылается запрос, он обрабатывается, а ответ помещается в ассоциативный массив функцией mysql_fetch_array().

(Q) Какие книги по PHP и mysql посоветуешь?

(A) "Профессиональное PHP-программирование" (Wrox, переиздана издательством "Символ") и "mSQL и mySQL" (O'Reily). И вообще, на будущее - издательства O'Reily и Wrox не выпускают плохих книг.

(Q) У меня не работает PHP-скрипт, он в аттаче, почини.

(A) Не буду, сам разбирайся в запятых.

Во-первых, осуществлен переход на новое ядро Zend-2, в котором полностью переписаны функции объектно-ориентированного программирования. Их семантика и внутренняя реализация стали более схожи с C, что добавило эффективности в разработке сценариев (подробнее об объектно-ориентированном программировании мы поговорим в следующий раз). Также добавлены некоторые функции, исправлены ошибки, повышена производительность за счет переорганизации самого движка.

Назад на стр. 056-078-2  Содержание  Вперед на стр. 056-078-4