За последние 24 часа нас посетили 34674 программиста и 1695 роботов. Сейчас ищут 903 программиста ...

Проверка доступа к функции редактирования по группам

Тема в разделе "PHP для новичков", создана пользователем ekip, 18 сен 2009.

  1. ekip

    ekip Активный пользователь

    С нами с:
    11 авг 2009
    Сообщения:
    118
    Симпатии:
    0
    Собственно написал скрипт редактирования отзывов к новостям доступный только пользователям с группой administrator, интересует как прикрутить к данному коду еще проверку на 1 группу redactor. Т.е мы проверяем
    if (($prava['groop']) == 'administrator') переменную $prava с массивом x на валидность как добавить еще такую же проверку но группе redactor не сильно нагромождая код?
    PHP:
    1. <?
    2. // главная функция
    3. function massege() {
    4. // функция формы
    5. function form() {
    6. require 'connect.php';
    7. $result = mysql_query("SELECT * FROM otziv WHERE id = '".$_GET['id']."';", $link);
    8. $row2 = mysql_fetch_array($result);
    9. echo '<div id="otvet">
    10. <div id="list2">
    11. <div id="text">
    12. <p>Редактирование сообщения:</p>
    13. <form action="" method="post" name="html">
    14. <textarea name="text" rows="8" cols="70" id="text" value="yes">'.$row2['text'].'</textarea>
    15. <br><br>
    16. <input value="Отправить" name="edit" class="submit" type="submit">
    17. </form>
    18. </div></div></div>
    19. <div id="down"> <img src="/image/stick5.gif"> <a href="/news/view/'.$_GET['view'].'"> Вернуться на страницу обсуждений</a></div>';
    20. }
    21. // функция записи в базу в поле text только по полученному id
    22. function complete() {
    23. require 'connect.php';
    24. mysql_query('SET NAMES `utf8`');
    25. $query = "UPDATE otziv SET text = '".$_POST['text']."'  WHERE id = '".$_GET['id']."';";
    26. mysql_query($query, $link);
    27. header('Location: [url=http://localhost/news/view/'.$_GET]http://localhost/news/view/'.$_GET[/url]['view'].'');
    28. }
    29. // Проверяем состояние post
    30. if($_POST['edit']) complete();
    31. // выводим форму
    32. else form();
    33. }
    34. // Проверяем доступна ли функция massege если  переменная prava соответствует значению  administrator то фунция достпна
    35. if (($prava['groop']) == 'administrator')
    36. massege();
    37. // Если нет то посылаем человека на сервисное сообщение
    38. else
    39. header('Location: [url=http://localhost/service/10']http://localhost/service/10'[/url]);
    40. ?>
     
  2. LuckyScrat

    LuckyScrat Активный пользователь

    С нами с:
    16 июн 2009
    Сообщения:
    176
    Симпатии:
    0
    Адрес:
    Москва
    ну наверное elseif (($prava['groop']) == 'redactor') ...
     
  3. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    За такое тебя ждет страшный суд, ад и погибель!
    Больше никогда так не делай.
    Перед использованием в запросе данные необходимо ОБЯЗАТЕЛЬНО проверять.