Покажите где я опять что пропустил. Имеется пользователь Админ и несколько пользователей "менеджер". Каждый менеджер зарегистрирован в своей группе "business_unit". Когда в систему заходит админ он видит список всех менеджеров, а когда заходит менеджер, он должен получать только список всех пользователей своей группы, а у меня получается что все менеджеры видят всех пользователей. PHP: <?php if (!empty($_SESSION['login']) and !empty($_SESSION['password']) and $_SESSION['dostup'] == '0') \\проверка уровня доступа 0-админ, 1-менеджер, 2-пользователь { $dostup ='1'; //показать менеджеров $status = "<h4>Administrator</h4>"; //права доступа $table=$tadmin; //вывести шапку таблицы для админа $head=$hadmin; //определить правильный заголовок страницы $tableconnect='admincontent'; } elseif ($dostup='1') //зашёл менеджер { $dostup ='2'; //показать пользователей $status = "Office Manager"; //права доступа $table=$tmanager; //вывести шапку таблицы для офис-менеджера $head=$hmanager; //определить правильный заголовок $tableconnect='managercontent'; }echo "<h1>$head</h1>"; //вызвать нужный заголовок echo $table; //показать нужную таблицу $result = mysql_query("SELECT * FROM users WHERE dostup='$dostup' ORDER BY login"); //извлекаем логин и идентификатор пользователей $myrow = mysql_fetch_array($result); do { switch($tableconnect) { case "managercontent": managercontent($myrow); break; case "admincontent": admincontent($myrow); break; } } while($myrow = mysql_fetch_array($result)); echo "</tr> </table><br>"; } Я так понял мне нужно будет ввести ещё одну переменную, к примеру $BU и сверять её с полем business_unit, в анкете менеджеров, а патом уже делать фильтр на основе этих данных, но тогда если заходит админ, который кстати тоже принадлежит одному из business_unit ему тоже будут показываться только менеджеры его BU.
Invision и то и другое есть, операторы and or имеют более низкий приоритет чем && || PHP: elseif ($dostup='1') тут переменной доступ присваивается 1 PHP: if("1"){ echo 'true'; } если первый блок не выполнился, то переменной $dostup не существует
Padaboo Я не совсем понял суть предложенного кода. Что он делает? dostup - переменная уровня доступа. Если доступ 0 - это админ, если 1-менеджер, 2-юзер Предложенный код по идее никак не повлеяет на выполнение задачи. Просто как сделать чтобы вошедший менеджер видел только тех пользователей, которые находятся с ним в одной групе, т.е. в одной business_unit Можно к примеру написать что-то типа PHP: <?php if (dostup=1) and (business_unit=ALA) { $BU=ALA;} elseif (business_unit=GUW){$BU=GUW} else {$BU=SCO} Мне одному этот код кажется полным бредом?
не могу понять логику этого кода PHP: <?php if ($_SESSION['dostup'] == '0'){ $dostup = '1'; } elseif ($dostup='1'){ $dostup = '2'; }
Нет там логики McLotos: в ПХП сравнение идет не через = а через == (двойное равно). Есть еще === (равно и того-же типа). Просто = это присвоение, не важно где, в скобках у ИФа - тоже.
Padaboo =) Если уровень доступа вошедшего пользователя 0, тогда показать всех пользователей с уровнем доступа 1, если уровень вошедшего пользователя 1, показать всех пользователей с уровнем 2. Не знаю как это объяснить, но это работает. Мне просто ещё нужно добавить сюда, что если уровень доступа 1, то определить к какому BU относится вошедший и показать ему всех с доступом 2 из того же BU
Ну я php знаю не так хорошо, поэтому просто привёл пример ЛОГИКИ, а не кода. Например еслибы я писал это на JS код выглядел бы именно так =)