Всем доброго времени суток ))) PHP: <?php if($data['status'] != 3 OR !isset($prava['edit_content'])):?> <a class="button_i" href="#">Настройки</a> <?php endif;?> Не могу понять, не работает условие OR. Отдельно работает каждое, вместе не хотят. В чем проблема?
В php вместо OR пишут "|" вроде как PHP: <?php if(($data['status'] != 3) | (!isset($prava['edit_content']))):?> <a class="button_i" href="#">Настройки</a> <?php endif;?>
Я так тоже уже побывал | | , все ровно не срабатывает. Все ровно выдает кнопку когда есть $prava['edit_content']. PHP: <?php if(!isset($prava['edit_content'])):?> <a class="button_i" href="#">Настройки</a> <?php endif;?> Если оставить только одно условие, то все ОК. Но мне нужно 2 и более...
empty() не подходит. У меня либо есть $prava['edit_content'] либо нет! $prava['edit_content'] я формирую при авторизации пользователя, если у пользователя нет прав на редактирование, то я записываю это в сессию как $_SESSION['auth']['privilege']['edit_content'] = TRUE; И обратно, если есть права на редактирование, то я ничего не делаю. Тогда $_SESSION['auth']['privilege']['edit_content'] вообще нет. Я и проверяю на существование. И проблема в том что $_SESSION['auth']['privilege']['edit_content'] существует, то есть равна 1. А условие не срабатывает и все ровно выдает <a class="button_i" href="#">Настройки</a>. --- Добавлено --- Брал уже )))) все ровно не работает... Бред какой то, условие простейшее, а оно не работает. Как вариант, можно так: PHP: <?php if($data['status'] != 3):?> <?php if(!isset($prava['edit_content'])):?> <a class="button_i" href="#">Настройки</a> <?php endif;?> <?php endif;?> Но это, мягко говоря.... жесть )))
Почему AND, должно быть или OR. Просто выше я выставил по приоритету. если $data['status']!=3, то тогда в любом случае не показываю. Может быть так: $data['status'] == 2 ИЛИ !isset($prava['edit_content'] ----- тогда показываем Может быть так: $data['status'] == 2 ИЛИ isset($prava['edit_content'] ----- тогда не показываем Может быть так: $data['status']!=3 ИЛИ isset($prava['edit_content'] ----- тогда точно не показываем, так как два условия дают TRUE
@skitskis, нарисуйте лучше табличку... в колонках - возможные значения $prava['edit_content'], в строчках - возможные значения $data['status'], в ячейках соответствующих пересечению - статус (показывать/не показывать, то есть да/нет). Таким образом увидите требуемые множества... Ну и условия подобрать можно будет. Ещё в первом сообщении, если условие выполняется - отображается пункт "настройки". В следующих сообщениях вроде говорите об обратном, что этот пункт не должен отображаться при выполнении условий, указанных в первом сообщении.