Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите пожалуйста,что не так?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
goldclick
Отправлено: 30 Декабря, 2009 - 21:52:47
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Добрый вечер или ночи!
Подскажите,что не так в коде меню?
Видно только "Главная" и "Выход",а остальное нет.

PHP:
скопировать код в буфер обмена
  1. <?
  2. global $user_rights;
  3.  
  4. echo '<tr><td width=5 class=menu1>&nbsp;</td>';
  5. echo '<td class=menu2><a href="index.php">'.($_REQUEST['action']==''?'<b>Главная</b>':'Главная').'</a></td></tr>';
  6. echo '<tr><td colspan=2 height=4></td></tr>';
  7.  
  8.  
  9. if($user_rights['stat']){
  10.         echo '<tr><td width=5 class=menu1>&nbsp;</td>';
  11.         echo '<td class=menu2><a href="index.php?action=stat">'.($_REQUEST['action']=='stat'?'<b>':'').'Статистика'.($_REQUEST['action']=='stat'?'</b>':'').'</a></td></tr>';
  12.         echo '<tr><td height=4></td></tr>';
  13. }
  14. echo '<tr><td colspan=2 height=4><hr class="hr1"></td></tr>';
  15.  
  16. if($user_rights['rss_management']){
  17.         echo '<tr><td width=5 class=menu6>&nbsp;</td>';
  18.         echo '<td class=menu2><a href="index.php?action=rss_management">'.($_REQUEST['action']=='rss_management'?'<b>':'').'Управление RSS'.($_REQUEST['action']=='rss_management'?'</b>':'').'</a></td></tr>';
  19.         echo '<tr><td height=4></td></tr>';
  20.  
  21. }
  22.  
  23. if($user_rights['user_management']){
  24.         echo '<tr><td width=5 class=menu4>&nbsp;</td>';
  25.         echo '<td class=menu2><a href="index.php?action=user_management">'.($_REQUEST['action']=='user_management'?'<b>':'').'Управление&nbsp;пользователями'.($_REQUEST['action']=='user_management'?'</b>':'').'</a></td></tr>';
  26.         echo '<tr><td colspan=2 height=4></td></tr>';
  27. }
  28. ////////////////////////////////////////////////////////////////////////////////
  29. //Вывод меню СУ "Управление сайтом"
  30. ////////////////////////////////////////////////////////////////////////////////
  31. if($user_rights['site_const_management']){
  32.         echo '<tr><td width=5 class=menu4>&nbsp;</td>';
  33.         echo '<td class=menu2><a href="index.php?action=site_const_management">'.($_REQUEST['action']=='site_const_management'?'<b>':'').'Управление&nbsp;сайтом'.($_REQUEST['action']=='site_const_management'?'</b>':'').'</a></td></tr>';
  34.         echo '<tr><td colspan=2 height=4></td></tr>';
  35. }
  36. if($user_rights['pma']){
  37.         echo '<tr><td width=5 class=menu4>&nbsp;</td>';
  38.         echo '<td class=menu2><a href="pma/">Управление&nbsp;mysql</a></td></tr>';
  39.         echo '<tr><td colspan=2 height=4></td></tr>';
  40. }
  41. echo '<tr><td colspan=2 height=4><hr class="hr1"></td></tr>';
  42. echo '<tr><td width=5 class=menu5>&nbsp;</td>';
  43. echo '<td class=menu2><a href="logout.php">Выход</a></td></tr>';
  44.  
  45.  
  46. ?>


Отредактировано модератором: Champion, 31 Декабря, 2009 - 14:40:51
 
 Top
Ammy
Отправлено: 31 Декабря, 2009 - 03:13:00
Post Id



Частый гость


Покинул форум
Сообщений всего: 140
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




А что ещё должно быть видно, если "Главная" и "Выход" безусловлено выводятся по средствам echo? Остальной код - это условия, напрочь связанные с глобальной переменной (массивом?) $user_rights, определённой в самом начале потока. Если, например, в глобальном массиве $user_rights есть ключик stat, то будет вам статистика выведена. Проверяйте условия, права пользователя, и всё такое.

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. global $user_rights; // объявляем этой переменной глобальную область видимости.
  4.  
  5. if ($user_rights['meat']) echo 'Если тру, и ключик мясцо (meat) существует, то мы видим это.. ';
  6.  
  7.  


Запись "if ($user_rights['meat'])" эквивалентна "if (isset($user_rights['meat']))". В обоих случаях будет осуществляться проверка на cуществование ячейки meat в массиве $user_rights

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. global $user_rights; // объявляем этой переменной глобальную область видимости.
  4.  
  5. $user_rights['meat'] = 'Пользователю разрешено входить с мясом'; // добавляем ключик meat и строковое значение
  6.  
  7. if ($user_rights['meat']) echo 'Если тру, и ключик мясцо (meat) существует, то мы видим это.. ';
  8.  
  9. /*
  10.  Но не исключено, что ключики приделываются где-то за приделами этого скрипта! В этом случае лучше бы нам рассмотреть другую, основную часть скрипта, где выдаются пользователям права.
  11. */
  12.  
  13.  




P.S: Код заключайте в соответствующий тэг, чтобы он подсвечивался. Никто не будет ломать глаза.

(Отредактировано автором: 31 Декабря, 2009 - 04:26:21)

 
 Top
Мелкий Супермодератор
Отправлено: 31 Декабря, 2009 - 11:15:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ammy пишет:
Запись "if ($user_rights['meat'])" эквивалентна "if (isset($user_rights['meat']))". В обоих случаях будет осуществляться проверка на cуществование ячейки

Не совсем так. Проверяет наличие isset, а "if ($user_rights['meat'])" проверяет meat на булевое значение, либо приводит к нему. А если такой переменной нет, то возбуждает предупреждение уровня Notice.


-----
PostgreSQL DBA
 
 Top
Champion Супермодератор
Отправлено: 31 Декабря, 2009 - 11:27:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Ammy пишет:
"if ($user_rights['meat'])" эквивалентна "if (isset($user_rights['meat']))"

Поэксперементируй у себя:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $a = 0;
  3. if (isset($a)) echo 'isset';
  4. if ($a) echo 'Happy New Year';
 
 Top
JustUserR
Отправлено: 31 Декабря, 2009 - 12:40:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Ammy пишет:
Запись "if ($user_rights['meat'])" эквивалентна "if (isset($user_rights['meat']))". В обоих случаях будет осуществляться проверка на cуществование ячейки meat в массиве $user_rights
В действительности это совершенно разные вещи - if проверяет на пустоту или ложность переменной (False "" 0 etc) а isset проверяет равна ли переменная NULL


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Ammy
Отправлено: 31 Декабря, 2009 - 14:07:00
Post Id



Частый гость


Покинул форум
Сообщений всего: 140
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




В данном то случае проверка наличия ключа и записи, прокатит любое из этих выражений. Однако А если в общем, то вещи разные, извиняюсь.

(Отредактировано автором: 31 Декабря, 2009 - 14:12:26)

 
 Top
Champion Супермодератор
Отправлено: 31 Декабря, 2009 - 14:12:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Какая разница? Если такой элемент массива есть и равен 0, то проверка даст false. Для проверки ключа есть еще
 
 Top
Ammy
Отправлено: 31 Декабря, 2009 - 14:19:43
Post Id



Частый гость


Покинул форум
Сообщений всего: 140
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




Но у автора то точно нуля там быть не может, и не создана даже запись. Идёт обращение к несуществующим ячейкам в глобальной переменной (массиву). Я исхожу из основного положения, текущей темы, примера.. У меня одинаково срабатывают оба выражения..

А насчёт функции, приведённой тобою, могу сказать, что дело вкуса. Я бы не стала обращаться к подобного рода функциям в данном случае, здесь можно что-то проще, не так ли? Закатив глазки

С новым годом, кстати! Всех поздравляю с новым годом!!! )

(Отредактировано автором: 31 Декабря, 2009 - 14:34:58)

 
 Top
Champion Супермодератор
Отправлено: 31 Декабря, 2009 - 14:40:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Ладно, сознаюсь, я начал читать тему только с первого маленького сообщения. goldclick, оформляй код пожалуйста, а то помогать тебе захочет очень небольшое количество народу.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB