Принимаем вопросы от населения
Sergey |
|
||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
http://wm-help.net/my-articles/article/use-post-and-get-in-php.htm Это надо прочитать, это основа, это общие знания. Теперь будем разбирать ход программы, начнем с части user.edit.php 257 $mskin = cot_tplfile(array('users', 'edit', $usr['maingrp']), 'module'); Обратите внимание на array это массив возможных частей имен. Имеется своя дилемма подбора, это как раз функция cot_tplfile она находит файл шаблона, будет найден шаблон user.edit.tpl а мог быть user.edit.название_группы.tpl и другие комбинации. Важно, что получили имя файла шаблона. теперь переходим дальше, на
этот оператор создает новый экземпляр класса типа шаблон XTemplate В этом классе есть две главные функции это
Первая производит замену {USERS_EDIT_DELETE} на выражение, которое находится в классе t вторая out, выводит шаблон, после замены, в выходной поток, который своим способом попадает в браузер клиента, читателя Для того, чтобы поместить в USERS_EDIT_DELETE выражение имеется стандартное назначение:
тут вопрос, этот юзер $sys['user_istopadmin']) имеет право администрирования? Да, тогда мы создаем форму радиобатон с наименование ruserdelete это создает функция cot_radiobox обратите внимание, что радиобатон имеет два состояние 1- TRUE и 0 -FALSE, следовательно элемент массива $_POST, будет ассоциативный элемент ruserdelete Клиент получил форму, заполнил форму и нажал
ответ пошел на сервер, надо знать, что еще был сформирован и ответ в шаблоне:
а там
где формируются урл с двумя ключами m=edit a=update и ключом идентификатора пользователя id= эти ключи мы можем достать по запросу $_GET там будет массив из элементов: m, a и id. как форма отправилась опять загрузится модуль user.edit.php. В части common.php обрабатываются общие ключи, строки с 481
нам интересна функция в строке $a = cot_import('a', 'G', 'ALP', 24); она обрабатывает ответ $_GET - 'G', 'a', - это наименование элемента ассоциативного массива из $_GET, 'ALP' - это значит, что символы будут типа букв цифр и некоторых знаков. Надо знать, что серверная глобальная переменная ${_SERVER['QUERY_STRING'] как раз содержит все эти ключи, т.е. то что мы отмечаем от ? по & так устроен сервер, надо знать вот это http://www.php.su/articles/?cat=vars&page=015 команда Котонти уже позаботилась с правилами работы с этими глобальными. Опять возвращаемся к user.edit.php строка с 48
вот и имя ассоциативно массива $_POST - входное 'P', элемент ruserdelete о котором вы переживали. 'BOL' это как раз тип элемент битная логика: 1 или 0, помните вначале мы его задавали, а сейчас проверяем. получили $ruserdelete и начинаем обрабатывать если $ruserdelete это 1 или TRUE
надо признать, тут могут движок поломать через user_id=$id надо проверять на sql инъекцию (может проверка и есть, а может и нет), но без проверки такое делать не надо, нельзя набранное юзером совать в sql запрос, не при каких вариантах. Примерно так. - 2 часа жизни из моей шагреневой кожи. www.cotonti.mobi
|