За последние 24 часа нас посетили 18503 программиста и 1706 роботов. Сейчас ищет 721 программист ...

Проблема с users

Тема в разделе "Вопросы от блондинок", создана пользователем Nymo, 29 июл 2009.

  1. Nymo

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

    С нами с:
    10 июн 2009
    Сообщения:
    36
    Симпатии:
    0
    Есть раздел обычного userа и администратора. Пароли и имена подключения администратора и user, храниться в отдельной таблице в базе данных. Столкнулся с проблемой. Когда обычный user подключается к системе, и если он нажимает на "Administration" то может идти дальше, система не реагирует на то, что он обычный user а не админ. Помогите устранить эту проблему.
    Заранее благодарю.
     
  2. neverlose

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

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    PHP:
    1. if( !isAdmin( $UserID)) die('Access Denied');
     
  3. Nymo

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

    С нами с:
    10 июн 2009
    Сообщения:
    36
    Симпатии:
    0
    А как система проверит, этот пользователь из таблицы "admin" или "user" в базе данных?
     
  4. neverlose

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

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Это надо спросить самому, написав ф-цию isAdmin()
     
  5. Nymo

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

    С нами с:
    10 июн 2009
    Сообщения:
    36
    Симпатии:
    0
    neverlose
    В PHP я новичок, поэтому не очень разбираюсь. Не могли бы вы помочь мне решить проблему с “user”?
    В базе данных в таблицах “admin” и “user” я создал поля “id”, присвоил им значение “999” и “333”. Пробовал таким образом решить проблему, но не работает:
    <?php

    // Show LOGIN links if this is the LOGOUT page.
    if (isset($_SESSION['email']) AND (substr($_SERVER['PHP_SELF'], -10) != 'logout.php')) {
    $my = 999;
    echo '<a href="logout.php">Logout</a><br />
    <a href="change_password.php">Change Password</a><br />
    <a href="view_users.php">View users</a><br />
    <a href="view_unsubscribe_users.php">View unsubscribe users</a><br />
    <a href="search.php">Search users</a><br />
    ';
    } else { // Not logged in.
    echo ' <a href="register.php">Register</a><br />
    <a href="index.php">Login</a><br />
    <a href="forgot_password.php">Forgot Password</a><br />
    ';
    }
    if($my->id<999){
    header('Location: view_users.php');
    }else
    {
    header('Location: index.php');
    }
    ?>

    Может быть всё это нужно делать в файле “login.php”?
     
  6. illiaerne

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

    С нами с:
    22 июл 2009
    Сообщения:
    44
    Симпатии:
    0
    Адрес:
    подстолица
    Хочешь чисто одминский подход?
    1. создай таблицу users с колонками id, name, pass, privileges (ну и напиши форму регистрации пользователя и собсно сам файл регистрации. и на заметку прими значения priviltges 1=админ, 2=пользователь)
    2. login.php примерно такой
    PHP:
    1. <?php
    2. include('config.php');
    3. include('antihack.php');
    4. if (!$_POST["login"] or !$_POST["pass"])
    5.     {
    6.         header("Location: index.php");
    7.         exit;
    8.     }
    9.  
    10. if ($_POST["login"]!="") {antihack($_POST["login"]);}
    11. if ($_POST["pass"]!="") {antihack($_POST["pass"]);}
    12.  
    13. $query = "select count(*) from users where login='".$_POST["login"]."' and pass = '".$_POST["pass"]."'";
    14. $lst = mysql_query($query);
    15. if (mysql_result($lst,0,0)== 1)
    16. {
    17. $auth_login = $_POST["login"];
    18. $auth_pass = $_POST["pass"];
    19. session_register("auth_login");
    20. session_register("auth_pass");
    21. header("Location: index.php");
    22. }
    23. else
    24. {
    25. print "<font color='red'>Несуществующий пользователь или неверный пароль</font>
    26. <br>Для авторизации введите Имя пользователя и пароль в верхнем правом углу! на <a href=index.php>этой странице</a>";
    27. }
    28. ?>
    далее на нужной страничке вытащи привилегии пользователя сессии
    можно сделать так:

    PHP:
    1.  
    2. $res = mysql_query("SELECT priveleges as priv FROM users WHERE login = '".auth_login."');
    3. $priv = mysql_fetch_assoc($res);
    4. далее (я так понимаю у тя "Админка" это ссылка) делаешь так:
    5. if ($priv["priv"] !=1) {echo "идёте в попу";} else { ссылка на админку}
    6.  
    logout.php
    PHP:
    1.  
    2. <?php
    3. session_unregister("auth_login");
    4.  
    5. session_unregister("auth_pass");
    6.  
    7. header("Location: index.php");
    8. ?>