X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Переделать страницу авторизации
bulldos
bulldos
Topic Starter сообщение 28.7.2012, 18:59; Ответить: bulldos
Сообщение #1


Участник
***

Группа: User
Сообщений: 128
Регистрация: 15.3.2012
Поблагодарили: 8 раз
Репутация:   3  


Всем привет. Загнался вопросом, перекопал кучу материалов по теме, но сам так и не смог реализовать. Есть скрипт авторизации:
<?php    

if (!empty($_POST))
{
    $login = (isset($_POST['login'])) ? mysql_real_escape_string($_POST['login']) : '';
    
    $query = "SELECT `salt`
                FROM `users`
                WHERE `login`='{$login}'
                LIMIT 1";
    $sql = mysql_query($query) or die(mysql_error());
    
    if (mysql_num_rows($sql) == 1)
    {
        $row = mysql_fetch_assoc($sql);
        
        // итак, вот она соль, соответствующая этому логину:
        $salt = $row['salt'];
        
        // теперь хешируем введенный пароль как надо и повторям шаги, которые были описаны выше:
        $password = md5(md5($_POST['password']) . $salt);
        
        // и пошло поехало...

        // делаем запрос к БД
        // и ищем юзера с таким логином и паролем

        $query = "SELECT `id`
                    FROM `users`
                    WHERE `login`='{$login}' AND `password`='{$password}'
                    LIMIT 1";
        $sql = mysql_query($query) or die(mysql_error());

        // если такой пользователь нашелся
        if (mysql_num_rows($sql) == 1)
        {
            // то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)

            $row = mysql_fetch_assoc($sql);
            $_SESSION['user_id'] = $row['id'];
            
            
            // если пользователь решил "запомнить себя"
            // то ставим ему в куку логин с хешем пароля
            
            $time = 86400; // ставим куку на 24 часа
            
            if (isset($_POST['remember']))
            {
                setcookie('login', $login, time()+$time, "/");
                setcookie('password', $password, time()+$time, "/");
            }
            
            // и перекидываем его на закрытую страницу
            print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=main.php'>";
            exit;

            // не забываем, что для работы с сессионными данными, у нас в каждом скрипте должно присутствовать session_start();
        }
        else
        {
            die('Такой логин с паролем не найдены в базе данных. И даём ссылку на повторную авторизацию. — <a href="index.php">Авторизоваться</a>');
        }
    }
    else
    {
        die('пользователь с таким логином не найден, даём ссылку на повторную авторизацию. — <a href="index.php">Авторизоваться</a>');
    }
}


?>

Все работает исправно, но появилась необходимость для некоторых пользователей сделать другую страницу после входа. В таблице создал еще одно поле для пользователей "Group" Нужно сделать следующее: Если у пользователя в поле "group"запись admin - то переходит на страницу main.php, если user, то на страницу work.php


--------------------
icq:809 тире 405
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
phpsin
phpsin
сообщение 28.7.2012, 22:32; Ответить: phpsin
Сообщение #2


Бывалый
****

Группа: User
Сообщений: 351
Регистрация: 19.1.2010
Поблагодарили: 123 раза
Репутация:   40  


При запросе к бд получите данные и из Group, после этого if else и пере направление на нужную страницу.
Если сами не осилите могу сделать вышеописанное под заказ )


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bulldos
bulldos
Topic Starter сообщение 29.7.2012, 22:04; Ответить: bulldos
Сообщение #3


Участник
***

Группа: User
Сообщений: 128
Регистрация: 15.3.2012
Поблагодарили: 8 раз
Репутация:   3  


ничего не получается, да и проектом это сложнго назвать, тренеруюсь. Были бы денежки ради интереса уже заплатил бы. facepalm.gif


--------------------
icq:809 тире 405
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Lordie
Lordie
сообщение 29.7.2012, 22:06; Ответить: Lordie
Сообщение #4


Топовый постер
*******


Группа: Active User
Сообщений: 4737
Регистрация: 11.5.2008
Поблагодарили: 966 раз
Репутация:   153  


bulldos, напишите в аську, помогу smile.gif
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kirils
Kirils
сообщение 31.7.2012, 13:24; Ответить: Kirils
Сообщение #5


Частый гость
**

Группа: User
Сообщений: 51
Регистрация: 20.7.2012
Поблагодарили: 19 раз
Репутация:   2  


SELECT `id` замените на SELECT `id`, `group` или SELECT *.
            // и перекидываем его на закрытую страницу
            print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=main.php'>";

замените на
if ($row['group'] == 'admin') {
    header('Location: /main.php');
} else {
    header('Location: /work.php');
}

(только правильно пути укажите). Если групп будет несколько, можно добавить через elseif или заменить весь блок на switch.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Подписчики на страницу в Facebook
6 Swissi 981 28.11.2017, 18:46
автор: meat_mashinE
Открытая тема (нет новых ответов) Яша определяет не правильно релевантную страницу
нужна подсказка от Гуру!
26 minutkin 2357 25.11.2017, 23:49
автор: genjnat
Открытая тема (нет новых ответов) Адаптированный интернет-магазин парфюмерии (можно переделать под любую тематику)
1 Black_Mag 1157 7.11.2016, 13:17
автор: Black_Mag
Открытая тема (нет новых ответов) Продам Страницу в ВК 27к подписчиков
21 dtokinov 4778 19.9.2016, 11:11
автор: Яков_Деменьтев
Открытая тема (нет новых ответов) Нужно доделать/переделать макет сайта
4 DVORYAN 787 23.8.2016, 16:20
автор: DVORYAN


 



RSS Текстовая версия Сейчас: 11.12.2017, 15:43
Дизайн