kuzma
Гость
|
 |
« : 26-12-2007, 22:39:44 » |
|
нужно сделать авторизацию для сайта через одну форму чтоб админ поподал в админку а юзер каждый на свою строничка задача реализовать на php+MySQL
|
|
|
Записан
|
|
|
|
kuzma
Гость
|
 |
« Ответ #1 : 27-12-2007, 08:13:15 » |
|
хотяб скажите как это реализовать
|
|
|
Записан
|
|
|
|
WolF
|
 |
« Ответ #2 : 27-12-2007, 08:47:47 » |
|
форма: <form action="login.php" method="POST"> <input type="text" name="login"> <input type="password" name="pwd"> <input type="submit"> </form>
база: CREATE TABLE users (user_id int(11) NOT NULL AUTO_INCREMENT, login varchar(255), passwd varchar(255), user_group tinyint(1), PRIMARY KEY (user_id))
скрипт: <?php
$get_user_sql = "SELECT user_id, user_group FROM users WHERE login = '".mysql_real_escape_string($_POST['login'])."' AND passwd = '".md5($_POST['paswd']."'"; $user_query = mysql_query ($get_user_sql); $redirect_path = '?auth_error=1'; if (mysql_num_rows ($user_query)) { $user_row = mysql_fetch_assoc ($user_query); if ($user_row['user_group'] == 1) { $redirect_path = '/admin/index.php'; } else { $redirect_path = '/index.php'; } } header ("Location: ".$redirect_path);
?>
Доступно?
|
|
|
Записан
|
Настоящего друга нельзя купить, зато можно продать!
|
|
|
kuzma
Гость
|
 |
« Ответ #3 : 27-12-2007, 08:52:23 » |
|
да доступно но не всем мнеб хотелось тему развить
|
|
|
Записан
|
|
|
|
WolF
|
 |
« Ответ #4 : 27-12-2007, 08:55:38 » |
|
А чё её развивать то? Задача проста как три копейки.
|
|
|
Записан
|
Настоящего друга нельзя купить, зато можно продать!
|
|
|
kuzma
Гость
|
 |
« Ответ #5 : 27-12-2007, 08:58:36 » |
|
недумаю вот допустим мне надо полностью закрыть дерикторию где будет админка а юзеров перенаправить в другую где будит их личный кабинет с которого они моглиб делать заявки и оформлять заказ
|
|
|
Записан
|
|
|
|
kuzma
Гость
|
 |
« Ответ #6 : 27-12-2007, 09:06:17 » |
|
да что касается 3коп. сообщите мне ваш WMR и аську
|
|
|
Записан
|
|
|
|
WolF
|
 |
« Ответ #7 : 27-12-2007, 09:10:01 » |
|
недумаю вот допустим мне надо полностью закрыть дерикторию где будет админка а юзеров перенаправить в другую где будит их личный кабинет с которого они моглиб делать заявки и оформлять заказ
Не вижу проблемы абсолютно. Закрывать директорию где админка абсолютно не обязательно - просто все скрипты, которые лежат в /admin/ должны смотреть - авторизован ли юзер или нет, авторизованный юзер является админом или нет.
|
|
|
Записан
|
Настоящего друга нельзя купить, зато можно продать!
|
|
|
WolF
|
 |
« Ответ #8 : 27-12-2007, 09:12:08 » |
|
да что касается 3коп. сообщите мне ваш WMR и аську
А вот это совершенно ни к чему  Делать её за вас я всё равно не буду...
|
|
|
Записан
|
Настоящего друга нельзя купить, зато можно продать!
|
|
|
kuzma
Гость
|
 |
« Ответ #9 : 27-12-2007, 09:15:01 » |
|
никто вас и не просит делать её за меня ... Юзер это потребитель и доступ к админке иметь не должен а Админ соответственно должен
|
|
|
Записан
|
|
|
|
WolF
|
 |
« Ответ #10 : 27-12-2007, 09:15:05 » |
|
p.s. естественно для того чтобы перед каждой страницей пользователя / админа не спрашивать логин-пароль надо использовать сессии - лиюо встроенные в PHP либо писать аналогичный механизм самостоятельно. и в том и в другом случае - не хранить данные пользователя в cookies в открытом виде, дабы избежать фальсификации оных....
|
|
|
Записан
|
Настоящего друга нельзя купить, зато можно продать!
|
|
|
WolF
|
 |
« Ответ #11 : 27-12-2007, 09:17:02 » |
|
никто вас и не просит делать её за меня ... Юзер это потребитель и доступ к админке иметь не должен а Админ соответственно должен
Я сказал каким образом это делается. Либо закрывать админку через .htaccess, но это не совсем хороший вариант по причинам вышеприведенным, либо а начале КАЖДОГО php скрипта в админке делать вышеприведенную проверку.
|
|
|
Записан
|
Настоящего друга нельзя купить, зато можно продать!
|
|
|
kuzma
Гость
|
 |
« Ответ #12 : 27-12-2007, 09:23:11 » |
|
иными словами сделать фай который проверял бы это и просто на каждую строничку его подрубить а как такую проверку сделать 
|
|
|
Записан
|
|
|
|
WolF
|
 |
« Ответ #13 : 27-12-2007, 09:40:07 » |
|
иными словами сделать фай который проверял бы это и просто на каждую строничку его подрубить а как такую проверку сделать  Ну не файл а функцию написать чё нить типа: <?php
function check_admin () { $check_result = 0; if (isset ($_COOKIE['user_id']) && $_COOKIE['user_id']) { $user_id = intval ($_COOKIE['user_id']); $auth_user = mysql_query ("SELECT user_group FROM users WHERE user_id = ".$user_id); $check_result = 0; if (mysql_num_rows ($auth_user)) { $user_row = mysql_fetch_assoc ($auth_user); if ($user_row['user_group'] == 1) { $check_result = 1; } } } return ($check_result); }
?>
Естественно в РЕАЛЬНОЙ системе прям так доверять user_id, лежащему в cookie нельзя, иначе каждый дурак его может подменить, надо его шифровать либо вообще не хранить в куках user_id, либо помимо user_id хранить ещё md5 хэш пароля, кароче вариантов море.
|
|
|
Записан
|
Настоящего друга нельзя купить, зато можно продать!
|
|
|
Paladin
не хипстер
2 СуперЗвезды

Рейтинг: +1982/-1969
Offline
Пол: 
Сообщений: 65062
|
 |
« Ответ #14 : 27-12-2007, 09:45:19 » |
|
ниче непонятно, но прикольно продолжайте
|
|
|
Записан
|
|
|
|
|