Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Авторизиция для админки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: и проверка
b0d
Отправлено: 05 Января, 2013 - 11:42:27
Post Id


Новичок


Покинул форум
Сообщений всего: 60
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Добрый день, подскажите пожалуйста, правильно ли будет использовать такую форму авторизации для админа?(на сайте всего 1 админ, остальные - пользователи.)
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     session_start();
  3. if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }
  4.     if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
  5.  
  6. if (empty($login) or empty($password))
  7.     {
  8.     exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
  9.     }
  10.    
  11.     $login = stripslashes($login);
  12.     $login = htmlspecialchars($login);
  13. $password = stripslashes($password);
  14.     $password = htmlspecialchars($password);
  15.  
  16.     $login = trim($login);
  17.     $password = trim($password);
  18.  
  19.     include ("bd.php");
  20.  
  21. $result = mysql_query("SELECT * FROM users WHERE login='$login'",$link);
  22.     $myrow = mysql_fetch_array($result);
  23.  
  24.     if ($myrow['password']==$password  && $myrow['login']==admin) {
  25.        $_SESSION['login']=$myrow['login'];
  26.     $_SESSION['id']=$myrow['id'];
  27.     echo "Вы успешно вошли на сайт! <a href='index.php'>Главная страница</a>";
  28.     }
  29.  else {
  30.    
  31.  
  32.     exit ("Вы не администратор.");
  33.     }
  34.    
  35.     ?>


И правильно ли будет осуществлять проверку на страницах, админ ли это, таким образом:
Допустим, id админа - 911

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if ($_SESSION['id'] == '911')) {
  3.  echo '//код страницы
  4. //код страницы
  5. //код страницы'; }
  6.  
  7. else {
  8.  echo "GO HOME!";
  9. }
  10. ?>
  11.  

(Отредактировано автором: 05 Января, 2013 - 12:05:16)

 
 Top
AlexAnder
Отправлено: 05 Января, 2013 - 11:53:02
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




Цитата:
правильно ли будет использовать такую форму авторизации для админа?

нет, это код Попова Огорчение Огорчение Огорчение
Спойлер (Отобразить)

(Добавление)
Спойлер (Отобразить)
очепятка?


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
DelphinPRO
Отправлено: 05 Января, 2013 - 12:11:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['login']) && isset($_POST['password'])){
  2.         include ("bd.php");
  3.         $login = mysql_real_escape_string($_POST['login']);
  4.         $password = md5($_POST['password']);
  5.         $result = mysql_query("
  6.                 SELECT *
  7.                 FROM `users`
  8.                 WHERE `login` = '$login'
  9.                 AND `password` = '$password'
  10.                 ", $link);
  11.         if (mysql_num_rows($result)) {
  12.                 $row = mysql_fetch_array($result);
  13.                 session_start();
  14.                 $_SESSION['login'] = $row['login'];
  15.                 $_SESSION['id'] = $row['id'];
  16.                 echo "Вы успешно вошли на сайт! <a href='index.php'>Главная страница</a>";
  17.         } else {
  18.                 die('Доступ запрещен!');
  19.         }
  20. } else {
  21.         die('Доступ запрещен!');
  22. }

как-то так

(Отредактировано автором: 05 Января, 2013 - 12:12:21)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
KingStar
Отправлено: 05 Января, 2013 - 12:13:35
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }


и снова здрасте Хм


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Vaio
Отправлено: 05 Января, 2013 - 12:29:55
Post Id


Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




DelphinPRO пишет:

А пароли в его базе в md5? Что-то я сомневаюсь Хм
 
 Top
DelphinPRO
Отправлено: 05 Января, 2013 - 12:37:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Vaio пишет:
А пароли в его базе в md5? Что-то я сомневаюсь
это его проблемы Улыбка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
b0d
Отправлено: 05 Января, 2013 - 12:52:25
Post Id


Новичок


Покинул форум
Сообщений всего: 60
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




DelphinPRO Спасибо вам! Если я правильно понимаю, это просто авторизация, а как тогда правильно будет отсылать одного админа не на главную страницу сайта, а на главную страницу админа?
Добавить что то типа того, что я писал?
PHP:
скопировать код в буфер обмена
  1.  if (isset($_POST['login']) && isset($_POST['password'])){
  2.             include ("bd.php");
  3.             $login = mysql_real_escape_string($_POST['login']);
  4.             $password =($_POST['password']);
  5.             $result = mysql_query("
  6.                    SELECT *
  7.                    FROM `users`
  8.                    WHERE `login` = '$login'
  9.                    AND `password` = '$password'
  10.                    ", $link);
  11.             if (mysql_num_rows($result)) {
  12.                     $row = mysql_fetch_array($result);
  13.                     session_start();
  14.                     $_SESSION['login'] = $row['login'];
  15.                     $_SESSION['id'] = $row['id'];
  16.                     echo "Вы успешно вошли на сайт! <a href='index.php'>Главная страница</a>";
  17.             }
  18.  
  19. elseif ($_SESSION['id'] == '911')) {echo "Вы успешно вошли на сайт как администратор! <a href='admin/index.php'>Главная страница</a>";}
  20.  
  21. else {
  22.                     die('Доступ запрещен!');
  23.             }
  24.     } else {
  25.             die('Доступ запрещен!');
  26.     }

(Отредактировано автором: 05 Января, 2013 - 12:54:16)

 
 Top
Vaio
Отправлено: 05 Января, 2013 - 13:12:54
Post Id


Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. if($_SESSION['id'] == '911'){
  2.         header('Location= admin/index.php');
  3. }
 
 Top
DelphinPRO
Отправлено: 05 Января, 2013 - 13:14:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




PHP:
скопировать код в буфер обмена
  1. if (mysql_num_rows($result)) {
  2.     $row = mysql_fetch_array($result);
  3.     session_start();
  4.     $_SESSION['login'] = $row['login'];
  5.     $_SESSION['id'] = $row['id'];
  6.     if ($_SESSION['id'] == 911) {
  7.         echo "Вы успешно вошли на сайт как администратор!";
  8.         echo "<a href='admin/index.php'>Главная страница</a>";
  9.     } else {
  10.         echo "Вы успешно вошли на сайт как пользователь!";
  11.         echo "<a href='index.php'>Главная страница</a>";
  12.     }
  13. }

как-то так
(Добавление)
только такая запись if ($_SESSION['id'] == 911) не ахти.

сделайте в таблице еще одно поле "acl"
и пишите
if ($row['acl'] == 1) админ
if ($row['acl'] == 0) юзер
if ($row['acl'] == 2) модератор
и т.п.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB