0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 27
1

Пропадает сессия

06.04.2015, 01:30. Показов 2818. Ответов 11
Метки нет (Все метки)

Здравствуйте! Есть не большой сайт на котором организована авторизация пользователей. Проблема заключается в чем, когда пользователь вошел, вместо кнопки "Войти" появляется "Выйти", но если я добавляю к этой кнопке href на файл с session_destroy(), то при обновлении страницы или при переходе на другую (не нажимая перед этим кнопку "Выход"), сессия прекращается. Не знаю как решить эту проблему...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2015, 01:30
Ответы с готовыми решениями:

Теряется сессия в ие.
Всем привет. Есть приложение под фейсбук, оно подгружается через фрейм(возможно это важно). В...

Сессия капчи
Наткнулся на жосткий прикол. Написал скрипт капчи function cap() { ...

сессия пуста
есть 2 файла login php и createnews.php в обоих файлах в начале прописано session_start(); куки с...

if, else. Не срабатывает сессия
Хай, скажу сразу, я новичёк так скажем, и у меня возник вопрос. <? if($isProf) { ?> ...

11
Заблокирован
06.04.2015, 03:59 2
Цитата Сообщение от Adept22 Посмотреть сообщение
но если я добавляю к этой кнопке href на файл с session_destroy(), то
Я правильно понимаю, если ты не добавляешь "href", то у тебя всё гут? Или это такой словесный выверт, что бы окончательно всем мозг сломать? Если первое, то показывай код. Лично я не могу представить ситуации когда ссылка в HTML может сломать рабочую сессию.
0
0 / 0 / 1
Регистрация: 06.04.2015
Сообщений: 3
06.04.2015, 07:10 3
Прописано ли на первой строке каждой страницы начало сессии?
PHP
1
session_start();
0
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 27
06.04.2015, 11:55  [ТС] 4
Цитата Сообщение от Trukl Посмотреть сообщение
Я правильно понимаю, если ты не добавляешь "href", то у тебя всё гут? Или это такой словесный выверт, что бы окончательно всем мозг сломать? Если первое, то показывай код. Лично я не могу представить ситуации когда ссылка в HTML может сломать рабочую сессию.
Первый вариант. Я тоже сломал себе мозг, когда увидел эту проблему... Код позже смогу предоставить.

Добавлено через 20 секунд
Цитата Сообщение от minimalcasa Посмотреть сообщение
Прописано ли на первой строке каждой страницы начало сессии?
PHP
1
session_start();
Да, конечно.
0
Заблокирован
06.04.2015, 11:58 5
Цитата Сообщение от Adept22 Посмотреть сообщение
Да, конечно.

и как же у тебя работало то такое?
0
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 27
06.04.2015, 12:20  [ТС] 6
Цитата Сообщение от Trukl Посмотреть сообщение

и как же у тебя работало то такое?
В смысле? У меня везде в начале прописано session_start(). Может я ответил как с сарказмом?
0
Заблокирован
06.04.2015, 12:41 7
Что бы сессия работала на всём сайте, у тебя должна быть единая точка входа и там прописано session_start();. Если же ты стартуешь сессию в каждом своём файле. То у тебя в каждом файле новая сессия и ты не имеешь доступа к сессионому массиву заданному в остальных файлах. Иными словами у тебя не сессия пропадает, у тебя просто новая сессия везде. И ссылка к этому не имеет никакого отношения.
0
Эксперт PHP
5750 / 4131 / 1506
Регистрация: 06.01.2011
Сообщений: 11,279
06.04.2015, 12:48 8
Trukl, единая точка входа на сайт это конечно хорошо, но откуда у Вас такая информация?
Пробуйте:
Файл index.php:
PHP
1
2
3
4
5
6
7
<?php
    session_start();
    
    $_SESSION['test'] = 'установлена в index.php';
    
?>
<a href="test.php">Кликните</a>
Файл test.php:
PHP
1
2
3
4
<?php
    session_start();
    
    var_dump($_SESSION);
0
Заблокирован
06.04.2015, 12:59 9
Ай тигрёнок ай молодца. А теперь зайди на test.php на прямую.

Добавлено через 7 минут
ПСЫ да даже с твоим примером пустая сессия.
0
Эксперт PHP
5750 / 4131 / 1506
Регистрация: 06.01.2011
Сообщений: 11,279
06.04.2015, 13:02 10
Цитата Сообщение от Trukl Посмотреть сообщение
А теперь зайди на test.php на прямую.
Так, зашёл. Какие дальнейшие указания?
Если однажды была переменная сессии установлена, она будет доступна по всему сайту, пока не закончится сессия (например, пока браузер не закроем).
Например, мы в index.php установили переменную и пока мы не удалим COOKIE PHPSESSID, эта переменная будет доступна во всех файлах, где запущена сессия.

Добавлено через 1 минуту
Цитата Сообщение от Trukl Посмотреть сообщение
да даже с твоим примером пустая сессия.
Вы COOKIE принимаете? Вернее Ваш браузер.
Включите вывод ошибок вначале index.php:
PHP
1
2
ini_set('display_errors', 1);
error_reporting(E_ALL);
Возможно у Вас кодировка Utf-8 с BOM и заголовки не посылаются.
1
Заблокирован
06.04.2015, 13:36 11
Признаю пример рабочий. Видимо некоторые знания у меня отсутствовали, а привычка делать по определённому шаблону, держала меня в плену определённых иллюзий.
0
Эксперт PHP
5750 / 4131 / 1506
Регистрация: 06.01.2011
Сообщений: 11,279
06.04.2015, 14:12 12
Trukl, ну вот .
Но я всё равно за одну точку входа на сайте, даже когда мой пример рабочий.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.04.2015, 14:12
Помогаю со студенческими работами здесь

Сессия. Авторизация
Доброго времени суток, форумчане. Сразу же перейду к вопросу. Создал авторизацию, по принципу...

Сессия с меткой авторизации
Что лучше записывать в сессию для определения залогинен пользователь или нет?

Не передаётся сессия из-за header
Хочу использовать сессию для вывода сообщений об ошибках или успешном выполнении запросов...

Почему сессия опаздывает?
Всем привет! Создал страницу с капчей и результат сохраняю в сессию. Вывожу изображение(капчу) и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru