Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
.NET ONLY
 Аватар для DEA7H
71 / 71 / 7
Регистрация: 05.10.2011
Сообщений: 495

Проблемы с сессией в PHP

25.12.2012, 21:03. Показов 1885. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Есть вот файл в котором происходит авторизация:
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
<?php
 
    require_once ($_SERVER['DOCUMENT_ROOT'].'/engine/model/ini.php');
    require_once ($_SERVER['DOCUMENT_ROOT'].'/engine/model/db_connect.php');
    
    if(isset($_POST['login']))
    {
        
        $login = $_POST['login'];
        $password = md5($_POST['password']);
        
        if (($login == NULL) || ($password == NULL))
        {
            echo "Заполните все поля пожалуйста!";
        }
        else
        {
            $sql_string = "SELECT user_id FROM users WHERE login='".$login."' AND password = '".$password."' LIMIT 1;";
            $sql = mysql_query($sql_string) or die(mysql_error());
            
            if (mysql_num_rows($sql) == 1)
            {
                $row = mysql_fetch_assoc($sql);
                $_SESSION['user_logged'] = $row['user_id'];
                
                !!!!!!!!!!!!!!!!!!ТУТ МЫ УСПЕШНО НАШЛИ ПОЛЬЗОВАТЕЛЯ И АВТОРИЗИРОВАЛИСЬ!!!!!!!!!!!!!!!!!!!!!!
            }
            else
            {
                echo "Такого пользователя нет в нашей БД! Проверьте правильность ввода!";
            }
        }
    }
    else
    {
        $content = $template->fetch($_SERVER['DOCUMENT_ROOT']."/engine/admin-panel/template/login.tpl");
        $template->assign("content",$content);
    
        $template->display($_SERVER['DOCUMENT_ROOT']."/engine/admin-panel/template/main.tpl");
    }
 
?>
И так. На месте где в коде строка:
PHP
1
!!!!!!!!!!!!!!!!!!ТУТ МЫ УСПЕШНО НАШЛИ ПОЛЬЗОВАТЕЛЯ И АВТОРИЗИРОВАЛИСЬ!!!!!!!!!!!!!!!!!!!!!!
Нужно написать такое:
Чтобы мы переходили на ссылку:
а там есть проверка:
PHP
1
if (isset($_SESSION['user_logged'])){
и нужно чтобы эта проверка проходила, тоесть передать полученый $_SESSION['user_logged' дальше.

Как так сделать!?

Заранее благодарен.

Добавлено через 52 минуты
1) Как сделать переадресацию и чтобы при этом сессия сохранялась?
2) Как сделать просто переадресация на другую ссылку без всяких сессий и передачи параметров?

Добавлено через 8 минут
простая переадресация понял:
PHP
1
2
header("Location: /admin-panel/login/"); 
exit();
теперь как сделать:
Цитата Сообщение от DEA7H Посмотреть сообщение
Как сделать переадресацию и чтобы при этом сессия сохранялась?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.12.2012, 21:03
Ответы с готовыми решениями:

Кодировка и сопутствующие проблемы с сессией
Здравствуйте Подключаю бд и сессию к странцие чрз отельный файл(redbeadn php) require &quot;libs/rb.php&quot;; R::setup(...

Странности с сессией php
Всем привет. Не могу понять в чем &quot;прикол&quot; с этой сессией... К примеру простой код test.php: &lt;? session_start(); ...

Авторизация с сессией , php+mysql , session_start
Привет всем! Вспоминаю PHP в связи с началом программирования под Android. Написал несколько страниц по выборке, редактированию данных в...

10
 Аватар для c4boomb
198 / 166 / 23
Регистрация: 20.04.2011
Сообщений: 750
Записей в блоге: 1
25.12.2012, 21:07
Сессия в любом случае сохраняется. Просто на каждой страничке где её надо использовать пишите
PHP
1
session_start();
1
.NET ONLY
 Аватар для DEA7H
71 / 71 / 7
Регистрация: 05.10.2011
Сообщений: 495
25.12.2012, 21:25  [ТС]
Тьфу ты, там где я читал о...
PHP
1
session_start();
...ничего не написано.

Теперь все работает! Спасибо!

Добавлено через 13 минут
А когда сессия закончится сама, время какое-то есть ее действия?
0
 Аватар для c4boomb
198 / 166 / 23
Регистрация: 20.04.2011
Сообщений: 750
Записей в блоге: 1
25.12.2012, 21:31
Зависит от выставленных параметров в пыхе
PHP
1
2
ini_set('session.gc_maxlifetime', $time);
ini_set('session.cookie_lifetime', $time);
$time - время в секундах
1
.NET ONLY
 Аватар для DEA7H
71 / 71 / 7
Регистрация: 05.10.2011
Сообщений: 495
25.12.2012, 21:34  [ТС]
Ясно! И последний вопрос! xD
1) Как принудительно завершить сессию?
2) Как завершить сессию для определенного пользователя? Ну если у меня например одновременно авторизированы 2 разных пользователя, то как сделать так что когда один жмет выход, выходит только он а тот первый остается?
0
 Аватар для c4boomb
198 / 166 / 23
Регистрация: 20.04.2011
Сообщений: 750
Записей в блоге: 1
25.12.2012, 21:37
PHP
1
session_destroy();
Сессии хранятся на стороне клиента. Поэтому кто нажмёт, тот и выйдет. Нет разницы сколько авторизировано.
1
.NET ONLY
 Аватар для DEA7H
71 / 71 / 7
Регистрация: 05.10.2011
Сообщений: 495
25.12.2012, 21:39  [ТС]
Спасибо! Теперь все понятно! Вы мне очень помогли!
0
 Аватар для fa2m
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
26.12.2012, 02:22
Цитата Сообщение от c4boomb Посмотреть сообщение
Сессии хранятся на стороне клиента
Я думаю Вы не так выразились, а человек так и запомнит Или Вы действительно так думаете?
0
2 / 2 / 0
Регистрация: 27.12.2012
Сообщений: 94
27.12.2012, 14:10
Цитата Сообщение от DEA7H Посмотреть сообщение
Ясно! И последний вопрос! xD
1) Как принудительно завершить сессию?
2) Как завершить сессию для определенного пользователя? Ну если у меня например одновременно авторизированы 2 разных пользователя, то как сделать так что когда один жмет выход, выходит только он а тот первый остается?
Лучше всего уничтожить сессию так:

PHP
1
2
    unset($_SESSION['name']); 
    session_destroy();
Так правильней чем просто "дестрой".
0
 Аватар для c4boomb
198 / 166 / 23
Регистрация: 20.04.2011
Сообщений: 750
Записей в блоге: 1
28.12.2012, 00:25
fa2m, скорее неправильно выразился для упрощения понимания.
Вообще сессия хранится на сервере, а на стороне клиента только идентификатор. В этом и есть ёё преимущество перед куками...

SwoDs, Почему? После выполнения дестроя память точно так высвобождается как и с использованием unset.
0
 Аватар для fa2m
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
28.12.2012, 01:15
Цитата Сообщение от c4boomb Посмотреть сообщение
fa2m, скорее неправильно выразился для упрощения понимания.
Вообще сессия хранится на сервере, а на стороне клиента только идентификатор. В этом и есть ёё преимущество перед куками...
Я практически был уверен, что Вы это знаете (что Вы и доказали) Но "новичкам" так как Вы сказали в предыдущем посте говорить нельзя, даже для упрощения понимания!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.12.2012, 01:15
Помогаю со студенческими работами здесь

Проблемы с PHP
Здравствуйте. есть такая вот байда с пхп говорю ему: &lt;html&gt; &lt;head&gt; &lt;title&gt;Table&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;table&gt; ...

Непонятки с сессией.
Всем привет. Проблема такова. Есть страничка регистрации к MSSQL базе. Работает все нормально, но показывает такую ошибку: Warning:...

Проблемка с сессией.
Перелистал весь Google, ничего путного про сессии, а когда нашел все таки более менее понятную статью, оказалось примеры почему то не...

с сессией завал!
1. с Клавиатуры вводятся: первый член геометрической прогрессии b1 и знаменатель q. Вычислить третий член и сумму первых трёх членов этой...

Работа с сессией
Создайте 2 страницы php. На одной странице укажите настройки (цвет фона, начертание и цвет текста). На второй странице поместите абзац. При...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru