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.

296 Часть III. Решаем вопросы безопасности и целостности данных<br />

Даем РНР понять, что мы собираемся использовать переменные уровня сессии,<br />

и объявляем две переменные. Переменная $MM_authorizedusers содержит<br />

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

функции isAuthorized. Вторая переменная ($MM_donotCheckaccess)<br />

фактически не нужна — больше нигде в коде сценария она не встречается.<br />

Пропускаем код объявления функции isAuthorized — мы его уже рассмотрели.<br />

Смотрим дальше<br />

$MM_restrictGoTo = "Login.<strong>php</strong>" ;<br />

Сохраняем в переменной $MM_restrictGoTo интернет-адрес страницы, на<br />

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

если он не выполнил процедуру входа.<br />

if (!((isset($_SESSION['MM_Username'])) &&<br />

Ч» (isAuthorized("",$MM_authorizedUsers,<br />

Ч>$_SESSION['MMJJsername'], $_SESSION['MMJJserGroup'])))) {<br />

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

Сначала проверяется, вошел ли он на сайт (существует ли переменная уровня<br />

сессии MM_username, хранящая его имя). Далее с помощью функции<br />

isAuthorized выясняется, имеет ли он необходимые для доступа к странице<br />

права. Если это не так, то выполняется последующий код.<br />

$MM_qsChar = "?" ;<br />

$MM_referrer = $_SERVER['PHP_SELF'];<br />

if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";<br />

if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)<br />

$MM_referrer .= "?" . $QUERY_STRING;<br />

$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" .<br />

^urlencode($MM_referrer);<br />

Этот код сначала извлекает интернет-адрес текущей страницы, а потом проверяет,<br />

были ли ей переданы методом GET какие-либо аргументы. Эти аргументы<br />

добавляются к интернет-адресу текущей страницы. Потом к интернетадресу,<br />

хранящемуся в переменной $MM_restrictGoTo, добавляется аргумент<br />

accesscheck со значением, равным закодированному адресу текущей страницы<br />

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

GET. Это нужно для того, чтобы в случае успешного входа на сайт произошел<br />

автоматический возврат на эту страницу. Но создаваемый Dreamweaver<br />

код РНР, обеспечивающий автоматический возврат, не работает, поэтому<br />

весь приведенный ранее фрагмент кода бесполезен.<br />

Встроенная функция strlen принимает в качестве аргумента строку и возвращает<br />

ее длину в символах. А встроенная функция uriencode принимает

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

Saved successfully!

Ooh no, something went wrong!