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]   

> Описание: помогите настроить авторизацию на сайте
cooperok
Отправлено: 03 Ноября, 2011 - 18:12:16
Post Id


Частый гость


Покинул форум
Сообщений всего: 137
Дата рег-ции: Сент. 2011  
Откуда: Los Angeles, California


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




Всем привет. помогите кто чем может
Делаю на сайте авторизацию
все вроде нормально авторизуется но если небольшая проблема

после авторизации если перешел на другую страницу сайта а потом обратно на страницу с авторизацией то снова просит авторизироватся

как сделать что бы сохранялись куки или как их там
сильно не ругайтесь мало чего знаю, учусь, все делаю методом тыка и образцам с инета



вот страница авторизации
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. include('connectdb.php');// подключение к серверу MySql и выбор БД
  3. $userinfo='';
  4. $state='0';
  5. if( (isset($_COOKIE['UserName'])) & (isset($_COOKIE['UserPassword'])) ) {// если в куках лежит логин и зашифрованый пароля
  6.  if (!isset($_GET['exit'])) {// если кнопка выход не была нажата
  7.    $UserName=$_COOKIE['UserName'];
  8.    $UserPassword=$_COOKIE['UserPassword'];
  9.    
  10.    // проверяем наличие пользователя в БД и достаём оттуда пароль
  11.    $sql="SELECT id, UserPassword FROM exc_users WHERE UserName='$UserName'";
  12.    $res=mysql_query($sql);
  13.    if(mysql_num_rows($res)>0){// если пользователь есть в БД
  14.      $userinfo = mysql_fetch_array($res);// в этой переменной лежит пароль из БД
  15.      if(strcmp($UserPassword,$userinfo['UserPassword']) == 0) { //проверяем схожесть пароля из БД с паролем из куков
  16.        
  17.         // достаём все данные из БД
  18.         $sql="SELECT * FROM exc_users WHERE UserName='$UserName'";
  19.         $res=mysql_query($sql);
  20.         $userinfo=mysql_fetch_array($res); // в этой переменной будет лежать вся информация о пользователе из БД
  21.         $time=time();
  22.         // устанавливаем куки для запоминания статуса пользователя
  23.         setcookie("UserName",$UserName,$time+1800);
  24.         setcookie("UserPassword",$UserPassword,$time+1800);
  25.         $state = 1;// статус, если 1, тогда пользователь авторизован
  26.      }
  27.    }
  28.  } else {
  29.    //обнуляем куки, если была нажата кнопка выход
  30.    setcookie("UserName");
  31.    setcookie("UserPassword");
  32.  }
  33. }
  34. if($state != 1) {// если после проверки куков, оказалось, что пользователь не авторизован, то идем дальше
  35.  if( (isset($_POST['UserName'])) & (isset($_POST['UserPassword'])) ){ // если пользователь ввёл логин и пароль
  36.   $UserName = $_POST['UserName'];      
  37.  
  38.  // проверяем наличие пользователя в БД и достаём оттуда пароль
  39.  $sql = "SELECT id, UserPassword FROM exc_users WHERE UserName='$UserName'";
  40.  $res = mysql_query($sql);
  41.    if(mysql_num_rows($res)>0) {// если пользователь есть в БД
  42.      $userinfo = mysql_fetch_array($res);// в этой переменной лежит пароль из БД и номер пользователя
  43.      $UserPassword = $_POST['UserPassword'];
  44.      if(strcmp($UserPassword,$userinfo['UserPassword'])==0){
  45.        
  46.         // достаём все данные из БД
  47.         $sql="SELECT * FROM exc_users WHERE UserName='$UserName'";
  48.         $res=mysql_query($sql);
  49.         $userinfo=mysql_fetch_array($res);// в этой переменной будет лежать вся информация о пользователе из БД
  50.         $time=time();
  51.         // устанавливаем куки для запоминания статуса пользователя, пароль шифруем
  52.         setcookie("UserName", $UserName, $time+1800);
  53.         setcookie("UserPassword", $UserPassword, $time+1800);
  54.         $state = 1;// статус, если 1, тогда пользователь авторизован
  55.      }
  56.    }
  57.  }
  58. }
  59.  
  60. ?>
  61. <?php
  62. include ("header.php");
  63. ?>
  64.                     <h3 id="why">Уведомление об ответственности</h3>
  65.  
  66.                                         <ul id="maincon">
  67. <?php
  68. if($state != 1) {
  69.  
  70. echo '
  71. <form action="index.php" method="POST">
  72.                                 <p class="clearfix"><label for="username">Логин</label>
  73.                            <input type="text" name="UserName"></p>
  74.                                 <p class="clearfix"><label for="username">Логин</label>
  75.                            <input type="password" name="UserPassword"></p>
  76.                                                         <br>
  77.                        <input name="submit" id="submit" type="submit" value="">
  78.                                        
  79.                         </form>
  80. <br /><a href="/register.php">Регистрация</a>';
  81.  
  82. } else {
  83.  echo 'sssssssssssssssВы вошли на сайт!<br /> Ваш Логин: '.$userinfo["login"].'<br />Выш E-mail: '.$userinfo["email"].'<br /> <a href="/index.php?exit=y">Выход</a>';
  84. }
  85. ?>
  86.    </ul>
  87.         <?php
  88. include ("footer.php");
  89. ?>


Если может кто помочь и обьяснить напишите
а еще лучше если в ICQ 539098
(Добавление)
Так же в шаблоне в header
добавлена строка
session_start();


-----
This forum is vulnerable. I want to replace forum engine.
(c) OrmaJever
 
 Top
caballero
Отправлено: 03 Ноября, 2011 - 18:45:41
Post Id


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


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


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




зачем использовать куки да еще и пароль туда запихивать еcли для этого сессия есть?
зарегистрировал запиши в сессию id пользователя и проверяй вначале страницы


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
cooperok
Отправлено: 03 Ноября, 2011 - 19:02:30
Post Id


Частый гость


Покинул форум
Сообщений всего: 137
Дата рег-ции: Сент. 2011  
Откуда: Los Angeles, California


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




caballero
а если поподробнее? толком ничего не понял)
очень плохо разбераюсь, все методом тыка сделал
(Добавление)
caballero
что бы в сессию добавить нужно в базе таблицу новую создать?


-----
This forum is vulnerable. I want to replace forum engine.
(c) OrmaJever
 
 Top
etoYA
Отправлено: 03 Ноября, 2011 - 19:20:23
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




Нет, если авторизация прошла успешно, то добавляеш к примеру айди пользователя в сессию

$_SESSION['user_id'] = $row['user_id'];
 
 Top
cooperok
Отправлено: 03 Ноября, 2011 - 19:37:17
Post Id


Частый гость


Покинул форум
Сообщений всего: 137
Дата рег-ции: Сент. 2011  
Откуда: Los Angeles, California


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




etoYA
ну вроде добавил но все равно не работает

я так понимаю надо было сюда добавить
CODE (htmlphp):
скопировать код в буфер обмена
  1. <br /><a href="/register.php">Регистрация</a>';
  2.  
  3. } else {
  4. $_SESSION['id'] = $row['id'];
  5.   echo 'sssssssssssssssВы вошли на сайт!<br /> Ваш Логин: '.$userinfo["login"].'<br />Выш E-mail: '.$userinfo["email"].'<br /> <a href="/index.php?exit=y">Выход</a>';
  6. }
  7. ?>


-----
This forum is vulnerable. I want to replace forum engine.
(c) OrmaJever
 
 Top
etoYA
Отправлено: 03 Ноября, 2011 - 19:49:01
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




Нет, в вашем случае это будет так:

PHP:
скопировать код в буфер обмена
  1. $_SESSION['id'] = $userinfo['id'];
 
 Top
cooperok
Отправлено: 03 Ноября, 2011 - 19:52:18
Post Id


Частый гость


Покинул форум
Сообщений всего: 137
Дата рег-ции: Сент. 2011  
Откуда: Los Angeles, California


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




etoYA
все равно не работает(
там только добавить эту строку надо было? и правильно ли я добавил ее?


-----
This forum is vulnerable. I want to replace forum engine.
(c) OrmaJever
 
 Top
etoYA
Отправлено: 03 Ноября, 2011 - 19:55:45
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




Делайте проверку

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. if (!isset($_SESSION['id'])) {
  4.      echo 'Вы не авторизированы'; // выводиш форму авторизации
  5. }
  6. else {
  7.      echo 'Вы авторизованы'; // выводиш контент авторизованых пользователей
  8. }
  9.  

(Отредактировано автором: 03 Ноября, 2011 - 19:56:23)

 
 Top
cooperok
Отправлено: 03 Ноября, 2011 - 19:59:22
Post Id


Частый гость


Покинул форум
Сообщений всего: 137
Дата рег-ции: Сент. 2011  
Откуда: Los Angeles, California


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




etoYA
Да проверка работает пишет что авторизован
значит что то я до этого не так сделал
(Добавление)
etoYA
Можешь еще подсказать как сделать что бы при нажатие кнопки сессия сбросилась
ну тоесть кнопку выход из аккаунта
(Добавление)
etoYA
ааайй нет не совсем так работает
когда чел авторизуется я из базы вывожу его баланс что бы он видел
а сейчас после авторизации перейду на другую страницу и в блоке аккаунта вся инфа уберается только текст остается
вывожу вот так
Ваш Логин: '.$userinfo["UserName"].'<br/>Выш E-mail: '.$userinfo["UserEmail"].'<br /> <a href="/index.php?exit=y">Выход</a>
а потом остается только
Ваш Логин:
Выш E-mail:
Выход


-----
This forum is vulnerable. I want to replace forum engine.
(c) OrmaJever
 
 Top
etoYA
Отправлено: 03 Ноября, 2011 - 20:08:16
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




Естественно, а как оно будет оставатся, если на той странице не существует переменой $userinfo
 
 Top
cooperok
Отправлено: 03 Ноября, 2011 - 20:43:05
Post Id


Частый гость


Покинул форум
Сообщений всего: 137
Дата рег-ции: Сент. 2011  
Откуда: Los Angeles, California


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




etoYA
что то не могу разобратся как сделать что б выводилась инфа после того как перейду на другую страницу
тоесть я был на странице index.php авторизировался потом пошел на другую и потом снова на индекс и точно так же пишет только слова а из базы не выводит ничего

не подскажешь как сделать что б выводило?
(Добавление)
etoYA
Все сделал что бы из сессии в переменную инфа загружалась а потом из базы выборку делаю и выводит все

спс без тебя бы не разобрался)


-----
This forum is vulnerable. I want to replace forum engine.
(c) OrmaJever
 
 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