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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


Всем привет. Загнался вопросом, перекопал кучу материалов по теме, но сам так и не смог реализовать. Есть скрипт авторизации:
<?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


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


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


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


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


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


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.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Зачем перед лендингом ставят промежуточную страницу?
1 Boymaster 577 20.4.2024, 22:49
автор: malamut
Открытая тема (нет новых ответов) Залить html страницу на 20 доменов
6 TABAK 1709 22.5.2023, 16:24
автор: KORUP
Открытая тема (нет новых ответов) Продам страницу в фейсбук - 30к подписчиков
6 wartes 1211 14.11.2020, 2:33
автор: Progernaut
Открытая тема (нет новых ответов) Нужна помощь переделать сайт движок вордпрес +woocommerce
2 sasiza1 1427 27.5.2020, 17:56
автор: sasiza1
Открытая тема (нет новых ответов) Требуется переделать готовый макет
1 Вазелин 2122 24.4.2019, 20:18
автор: Mr_SMO


 



RSS Текстовая версия Сейчас: 24.4.2024, 16:44
Дизайн