Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/2: Рейтинг темы: голосов - 2, средняя оценка - 5.00
3 / 3 / 2
Регистрация: 17.09.2014
Сообщений: 67
1

Работа в сессиях

25.09.2014, 14:05. Показов 470. Ответов 4
Метки нет (Все метки)

Здравствуйте! Буду организовывать личный кабинет пользователей на сессиях.

Есть реализация представленная ниже: открываем сессию, коннектимся к БД, запрашиваем оттуда имя и пароль, если все ок, приветствуем пользователя и выгружаем для него личную информацию.

Вопрос собственно в следующем, будет ли каждый пользователь при такой реализации видеть свою уникальную страницу (если, к примеру, залогинется 10 разных пользователей, каждый увидет свое приветтствие и свою инфу)?

И еще вопрос, в какой момент нужно закрывать сессии, чтобы не создавать нагрузку на сервер или же нагрузка здесь будет не большой?
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
session_start();
include ('db_connection.php');
if($_POST['logoff']=='ok') $_SESSION['auth'] = false;
if($_POST['login_start']=="ok"){
  $login = addslashes(strip_tags(trim($_POST['login'])));
  $pass = (addslashes(strip_tags(trim($_POST['pass']))));
  $sql = "SELECT * FROM `users` WHERE `login` = '$login' AND `password` = '$pass' LIMIT 1";
  $query = mysql_query($sql);
  if(!$query){
    echo 'Не вошел';
  }
  else{
    if (mysql_num_rows($query) > 0){
      $res = mysql_fetch_array($query);
      $_SESSION['auth'] = true;
      $_SESSION['login'] = $res['login'];
    }
    else{
      $sys_msg = 'Вы не авторизованы. Проверьте правильность Логина и Пароля!';
    }
  }
}
?>
<!DOCTYPE html>
<html>
    <head>
           </head>
 
    <body>
                       <?php
        include ('form_login.php');
        echo $sys_msg;
        ?>
                       <!-- Здесь выгружаем личную информацию для пользователя...-->
            </body>
</html>
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
  if($_SESSION['auth']!=true){
?>
  <form action="" method="post">
    <label>Логин: <input type="text" name="login" size="10" /></label>&nbsp;&nbsp;
    <label>Пароль: <input type="password" name="pass" size="10" /></label><br /><br />
    <input type="hidden" name="login_start" value="ok" />
    <input type="submit" value="Войти" />
  </form>
<?php
}
else{
?>
  <form action="" method="post">
    <p>Здраствуйте, <b><?php echo $_SESSION['login'];?></b>!</p>
    <input type="hidden" name="logoff" value="ok" />
    <input type="submit" value="Выход" />
  </form>
<?php
}
?>
0

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

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2014, 14:05
Ответы с готовыми решениями:

Безопасность в сессиях
Здравствуйте. У меня такой может быть ламерский вопрос. Есть скрипт самописного сайта где есть...

Корзина на сессиях
Добрый день. Может кто знает, есть какие ограничения или подводные камни, когда используешь...

ошибка в сессиях((
Warning: session_start() : Cannot send session cache limiter - headers already sent (output started...

Корзина на сессиях
Добрый день, сделал вывод товаров посредством перехода на конкретный php файл, например товар1.php,...

4
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 952
25.09.2014, 15:41 2
Цитата Сообщение от Efrosiniya Посмотреть сообщение
будет ли каждый пользователь при такой реализации видеть свою уникальную страницу (если, к примеру, залогинется 10 разных пользователей, каждый увидет свое приветтствие и свою инфу)?
Цитата Сообщение от Efrosiniya Посмотреть сообщение
<p>Здраствуйте, <b><?php echo $_SESSION['login'];?></b>!</p>
Если Вы имеете ввиду, то, что (например) пользователь Иван зайдя под своим именем увидит:
Здраствуйте, Иван!
Пол М.
День Рождение 17 мая 1989 г.
А если зайдет Аня, то будет:
Здраствуйте, Аня!
Пол Ж.
День Рождение 12 июля 1992 г.
То да, для каждого пользователя своя уникальная информация.
0
3 / 3 / 2
Регистрация: 17.09.2014
Сообщений: 67
25.09.2014, 15:53  [ТС] 3
Здраствуйте, Аня!
Пол Ж.
День Рождение 12 июля 1992 г.
Да, это и имел ввиду, далее соответственно, если выгружу на эту страницу в строку 35 из БД информацию предназначенную только для Ани, ее увидидет только Аня. Правильно ли я понимаю?
0
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 952
25.09.2014, 16:09 4
Цитата Сообщение от Efrosiniya Посмотреть сообщение
информацию предназначенную только для Ани, ее увидидет только Аня
Да. Так как выборка запроса для конкретного пользователя.
А где вы взяли этот код?

Добавлено через 3 минуты
Думаю тут:
PHP
1
$sql = "SELECT * FROM `users` WHERE `login` = '$login' AND `password` = '$pass' LIMIT 1";
Лимиты - LIMIT 1 не нужны... Или у вас несколько пользователей одинаковыми логинами и паролями? Сделайте проверку при регистрации, что бы пользователь не мог зарегистрировать логин и почту, которая уже кому то принадлежит.

Добавлено через 3 минуты
У вас в коде где то стоят скобки, а где то нет, вот нету:
PHP
1
if($_POST['logoff']=='ok') $_SESSION['auth'] = false;
Дальше есть:
PHP
1
if($_POST['login_start']=="ok"){
И зачем выводить такие данные как логин через форму?:
PHP
1
2
3
4
5
  <form action="" method="post">
    <p>Здраствуйте, <b><?php echo $_SESSION['login'];?></b>!</p>
    <input type="hidden" name="logoff" value="ok" />
    <input type="submit" value="Выход" />
  </form>
0
3 / 3 / 2
Регистрация: 17.09.2014
Сообщений: 67
25.09.2014, 16:16  [ТС] 5
Большое спасибо! В голове картинка прояснилась почти, как и что нужно организовать)
Код с блога pishemsite.ru взял. Это просто пример, чтобы общий принцип понять как и что организовать.

И еще, если для каждого пользователя будет не одна персональная страница, а несколько, достаточно ли дальше просто в начале каждой персональной страницы просто открыть сессию, чтобы выгружать туда персональные данные из базы по id пользователя?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2014, 16:16

фильтр на сессиях
Привет! У меня есть список объявлений. Решил поставить фильтр на этот список - по Городам, по...

Авторизация на сессиях
Ребяты, подскажите, пожалуйста идеологию авторизации на сессиях (без кук). Есть БД юзверей. В...

Информация о терминальных сессиях
Необходимо получить информацию о терминальных сессиях. Команда: QWINSTA /SERVER:compname...

Пропадают переменные в сессиях
здраствуйте уважаемые форумчане! имеется 3 связанных страницы &lt;? session_start();?&gt; &lt;form...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.