Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
87 / 22 / 7
Регистрация: 23.09.2012
Сообщений: 671

Использование сессий в php

02.10.2012, 22:54. Показов 2273. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Я написал код регистрации, авторизации на php с использованием бд.
Вот теперь стал вопрос над тем, чтобы после авторизации пользователь оставался авторизованным.
Ну это сессии, вот только не разбирусь как сделать. Помогите плиз.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.10.2012, 22:54
Ответы с готовыми решениями:

Правильное использование сессий
Добрый вечер. Почитал в интернете статью о том, что сессия записывается в файл. Причём запись ведётся в последовательном режиме. У...

Работа сессий в php
Доброго времени суток! Учусь использовать сессии. Сначала открываю её: session_start(); потом кладу туда нужные мне переменные, потом...

Авторизация на php с использованием сессий.
У меня сейчас на сайте работает авторизация используя куки. То есть юзер вводит логин и пароль скрипт сверяет их с базой данных и вешает...

11
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
02.10.2012, 23:07
На всех страницах запускаете сессии
PHP
1
session_start();
в самом начале страницы, до вывода любого контента в браузер.

Храните ID юзера и логин в сессии
PHP
1
2
3
4
5
if (авторизация рпошла)
{
    $_SESSION['user_id'] = $row['id'];
    $_SESSION['username'] = $row['username'];
}
и для проверки авторизован ли он проверяете просто... можно даже функцией
PHP
1
2
3
4
function isGuest()
{
    return empty($_SESSION['user_id']);
}
функция isGuest() вернёт истину если пользователь не авторизован.

для выхода можно просто сделать так
PHP
1
$_SESSION['user_id'] = 0;
1
 Аватар для c4boomb
198 / 166 / 23
Регистрация: 20.04.2011
Сообщений: 750
Записей в блоге: 1
03.10.2012, 00:05
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
PHP
1
$_SESSION['user_id'] = 0;
лучше
PHP
1
unset($_SESSION['user_id']);
Добавлено через 10 миллиардов лет
или
PHP
1
session_destroy();
0
87 / 22 / 7
Регистрация: 23.09.2012
Сообщений: 671
03.10.2012, 00:13  [ТС]
Сново не получается. Алексей, можете пожалуйста показать на примере?
PHP
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
session_start()
include_once("config.php");
if(isset($_POST['submit']))
{
$login = $_POST['login'];
$password = $_POST['password']; 
$login=mysql_real_escape_string($login);
$password=mysql_real_escape_string($password);
$query = "SELECT id, login, password
FROM users
WHERE login ='{$login}' AND password='{$password}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
  //  mysql_free_result($result);
if (mysql_num_rows($sql) == 1)
readfile("user_panel.php");
else
readfile("ts.php");
}
 
    $sql = "SELECT login as id, ban, password
            FROM   users
            WHERE  login = '$login'";
 
    $result = mysql_query($sql);
 
    if (!$result) {
        echo "Could not successfully run query ($sql) from DB: " . mysql_error();
        exit;
    }
    
    if (mysql_num_rows($result) == 0) {
        echo "";
        exit;
    }
 
  
    while ($row = mysql_fetch_assoc($result)) {
     $row["ban"];
switch($row["ban"]){
            case 0:
                echo "";
                break;
            case 1:
readfile("banned.html");;
                break;
            default:
                echo "Ошибка с базой данных";
        }
    }
        
 
 
?>
Вот это лично мой коддинг, в нем проверка на правильность ввода данных через бд, потом если авторизация прошла, проверяем на бан пользователя. Это я обьяснил, чтобы Вам время не тратить на разбор кода. Вот подскажите, как чтобы каждый раз не авторизоваться сделать куки?
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
03.10.2012, 00:22
Начало может быть таким
PHP
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
<?php
session_start();
 
include_once("config.php");
 
function isGuest()
{
    return empty($_SESSION['user_id']);
}
 
if(isset($_POST['submit'], $_POST['login'], $_POST['password']))
{
    $login = trim($_POST['login']);
    $password = trim($_POST['password']); 
    $login=mysql_real_escape_string($login);
    $password=mysql_real_escape_string($password);
    
    $query = "SELECT `id`, `login`
                FROM `users`
                WHERE `login` ='{$login}' AND password='{$password}'
                LIMIT 1";
    $sql = mysql_query($query) or die(mysql_error());
    
    if ($user = mysql_fetch_assoc($sql))
    {
        $_SESSION['user_id'] = $user['id'];
        $_SESSION['login'] = $user['login'];
        readfile("user_panel.php");
    } else readfile("ts.php");
}
А что делать должен остальной код - я не понял

Если Алексей - это ко мне, то я Александр
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
03.10.2012, 00:23
Цитата Сообщение от delphi-sly Посмотреть сообщение
PHP
1
2
while ($row = mysql_fetch_assoc($result)) {
* * *$row["ban"];
уберите $row["ban"] он там незачем
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
03.10.2012, 00:23
Цитата Сообщение от delphi-sly Посмотреть сообщение
если авторизация прошла, проверяем на бан пользователя
проверка будет такая
PHP
1
2
3
4
if (!isGuest())
{
 // тут код который выполняется только для авторизованных юзеров
}
0
87 / 22 / 7
Регистрация: 23.09.2012
Сообщений: 671
03.10.2012, 00:35  [ТС]
стоп!
есть форма авторизации html, которая пост запросом отправляет данные в обработчик php avt.php
php обработчик вверху.
Надо сделать чтобы сессия создавалась и проверялась не уже в обработчике, а в авторизацие. Например, когда пользователь зайдет на html форму авторизации ему написали уже авторизован, иначе выводим форму авторизации.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
03.10.2012, 00:38
delphi-sly, обычно авторизацию выносят в отдельный файл и везде его подключают. потому что везде, где необходима авторизация (а чаще всего практически на всех страницах) - необходим полный файл (либо указывать в форме путь к скрипту-обработчику данных, но все равно форму лучше вынести, чтобы не писать одно и тоже везде..)
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
03.10.2012, 00:39
Ну а что не так?
если это то что для авторизованного выводится
PHP
1
readfile("user_panel.php");
а это форма
PHP
1
readfile("ts.php");
то всё правильно
0
87 / 22 / 7
Регистрация: 23.09.2012
Сообщений: 671
03.10.2012, 15:57  [ТС]
Нет, форма вот
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<table>
<form action="avt.php" method="POST">
<tr>
<td>Имя</td>
<td><input type="text" name="login"></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2"> <input type="submit" value="Вход" name="submit"></td>
</tr>
</form>
</table>
Вот тут пост запросом отправляет данные php скрипту, который авторизовывает или нет.
0
87 / 22 / 7
Регистрация: 23.09.2012
Сообщений: 671
08.10.2012, 16:05  [ТС]
Ну что не хто не поможет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.10.2012, 16:05
Помогаю со студенческими работами здесь

Готовые примеры PHP сессий
Кто-нить занимался на PHP сессиями, очень буду благодарен за примеры )

Покажите пример кода PHP с использованием сессий.
Приветствую. Подскажите, плиз, простой пример сессии для использования на страницах сайта для ввода и отображения данных в/из БД. Т.е....

Срок сессий в PHP
Интересно, что происходит с сессиями после того, как пользователь не заходил долго на сайт. Серваку-то не поступает информация о том, что...

Использование сессий в ASP
Всем привет. Допустим на сервере стоит время сессии 3 минуты. Мне нужно програмно увеличить это время. Делаю так : Файл Glabal.asa :...

Шифрация сессий: скрипт PHP передает неверные данные в программу
Вот есть код php: function xorencode($str, $key) { while(strlen($key) &lt; strlen($str)) { $key .= $key; } return...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru