Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация: пользователь и админ 
:(
    Опции темы
Sufius
  Дата 23.7.2004, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 5.4.2004
Где: Питер

Репутация: 1
Всего: 1



В БД есть таблица accounts

login
pass
email
icq
admin

есть страница регистрации
там по умолчанию в поле админ добавляется 0

есть страничка авторизации

Код

$conn = db_connect();
if (!$conn)
{
echo "Ошибка БД";
include('bottom.php');
exit;
}

 $query = "select * from accounts "
          ."where login='$login' "
          ." and password=password('$password')"
          ." and admin='1'";
 $result = mysql_query($query, $conn);
 if (mysql_num_rows($result) >0 )
 {
   $valid_login = $login;
   session_register("admin_login");
 }
}

 if (session_is_registered("admin_login"))
 {
и так далее

то есть сли такая комбинация есть login|pass и в поле admin 1,
то отображается страница с админскими возможностями,

как сделать, что если
Код

$conn = db_connect();
if (!$conn)
{
echo "Ошибка БД";
include('bottom.php');
exit;
}

 $query = "select * from accounts "
          ."where login='$login' "
          ." and password=password('$password')"
          ." and admin=0'";
 $result = mysql_query($query, $conn);
 if (mysql_num_rows($result) >0 )
 {
   $valid_login = $login;
   session_register("valid_login");
 }
}

 if (session_is_registered("valid_login"))
 {

Добавлено @ 14:56
чтобы отображалась инфа для зарегиных пользователей, но без кнопок админа,
то есть как сделать эту страничку регистрации
пытался сделать так, но что-то не получается...
Код

$conn = db_connect();
if (!$conn)
{
echo "Ошибка БД";
include('bottom.php');
exit;
}
if (
 $query = "select * from accounts "
          ."where login='$login' "
          ." and password=password('$password')"
          ." and admin='1";
 $result = mysql_query($query, $conn);
 if (mysql_num_rows($result) >0 )
 {
   $admin_login = $login;
   session_register("admin_login");
 }
)
else if (
 $query = "select * from accounts "
          ."where login='$login' "
          ." and password=password('$password')"
          ." and admin='0'";
 $result = mysql_query($query, $conn);
 if (mysql_num_rows($result) >0 )
 {
   $valid_login = $login;
   session_register("valid_login");
 }
)
}
if (session_is_registered("admin_login"))
{
echo "Вы админ!";
}

 if (session_is_registered("valid_login"))
 {
echo "Вы пользователь!";
}
и т.д.



--------------------
Помогите плиз с Ajax http://forum.vingrad.ru/forum/topic-208747.html
PM MAIL ICQ   Вверх
Ignat
Дата 23.7.2004, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



А что происходит?


--------------------
Теперь при чем :P
PM   Вверх
Sufius
Дата 23.7.2004, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 5.4.2004
Где: Питер

Репутация: 1
Всего: 1



???
надо чтобы проверялось, если admin=1, то сессия регистрировалась как admin_login, если admin=0 то сессия регистрировалась как valid_login




--------------------
Помогите плиз с Ajax http://forum.vingrad.ru/forum/topic-208747.html
PM MAIL ICQ   Вверх
Secandr
Дата 23.7.2004, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



Код
if (
$query = "select * from accounts "
         ."where login='$login' "
         ." and password=password('$password')"
         ." and admin='1";
$result = mysql_query($query, $conn);
if (mysql_num_rows($result) >0 )
{
  $admin_login = $login;
  session_register("admin_login");
}
)
else if (
$query = "select * from accounts "
         ."where login='$login' "
         ." and password=password('$password')"
         ." and admin='0'";
$result = mysql_query($query, $conn);
if (mysql_num_rows($result) >0 )
{
  $valid_login = $login;
  session_register("valid_login");
}
)
}

А зачем такое городить?
Вот так разве нельзя:
Код
$query = "select * from accounts "
         ."where login='$login' "
         ." and password=password('$password')";
$result = mysql_query($query, $conn);
if (mysql_num_rows($result) >0 )
{
  $row=mysql_fetch_array($result);
  if ($row['admin']==1)
       {
          $admin_login = $login;
          session_register("admin_login");
echo "вы админ";
       }
       else
       {
          $valid_login = $login;
          session_register("valid_login");
echo "вы простой смертный";
       }
}

Добавлено @ 15:15
Sufius Что не получается?

Стартуете ли вы сессию в начале файла?


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Sufius
Дата 23.7.2004, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 5.4.2004
Где: Питер

Репутация: 1
Всего: 1



2 Secandr
=)))
Это то, что было нужно!!! =)))
Все получилось!
Сибы... огромное...
+


--------------------
Помогите плиз с Ajax http://forum.vingrad.ru/forum/topic-208747.html
PM MAIL ICQ   Вверх
Secandr
Дата 23.7.2004, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



и код поправь как я показал, а то потом при изменении структуры бд придётся в двух местах изменять запрос.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Sufius
Дата 23.7.2004, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 5.4.2004
Где: Питер

Репутация: 1
Всего: 1



?
не понял
где изменять?


--------------------
Помогите плиз с Ajax http://forum.vingrad.ru/forum/topic-208747.html
PM MAIL ICQ   Вверх
Secandr
Дата 23.7.2004, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



Sufius
Читай постом выше.
нет смысла писать запрос $query=... дважды, проще сделать проверку админ ты или нет.

Вот допустим решишь ты изменить политику пользователей и добавить модераторов, как тебе это делать? писать опять
Код
$query = "select * from accounts "
        ."where login='$login' "
        ." and password=password('$password')"
        ." and admin='0'"
        ." and moder='1'";

Гораздо прощу сделать admin=0,1,2. Т.е. 0 - пользователь, 1 - модер, 2 -админ.
И добавить проверку:
Код
  if ($row['admin']==1)
      {
         $admin_login = $login;
         session_register("moder_login");
echo "вы модератор";
      }
      elsif ($row['admin']==2)
      {
         $admin_login = $login;
         session_register("admin_login");
echo "вы админ";
      }
      else
     



--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.4337 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.