powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP: Сессия
23 сообщений из 48, страница 2 из 2
PHP: Сессия
    #38346218
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
	error_reporting(E_ALL);
	if (isset($_REQUEST[session_name()]))
	{
		session_start();
	}



Вы где это все берете то? Добавьте session_start(); в начало каждого файла где нужно работать с сессией.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38346230
Mike222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про session_start(); в начало каждого файла - это я понял.
Не пойму другое, например:
1. В файле index.php разве можно сразу session_start()? Может посетителю не нужна сессия, т.е. не хочет авторизоватся или регистрироваться.
2. Первый запуск сессии, т.е. session_start(), происходит в файле autorize.php, после установления параметров, настроек и т.д.
3. Как при возврате на страницу index.php узнать, что имеется сессия (создана, запущена) и тогда сделать session_start()?
4. Если никто не авторизовался, то в index.php ни к чему с ходу ставить session_start(). Сперва надо проверить как-то, но я не знаю как.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38346245
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike222,

автор
Код: php
1.
2.
ini_set("session.use_cookies", 0);
ini_set("session.use_trans_sid", 1);

Вы действительно именно так сделать хотите? Тады проверяйте, не отваливается ли где идентификатор сессии при переходах с одной страницы на другую. Не уверен, должен ли PHP автоматически дописать сессию к этому хидеру или это нужно явно прописывать в коде:
автор
Код: php
1.
header("Location: /index.php");
...
Рейтинг: 0 / 0
PHP: Сессия
    #38346249
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор РНР автоматически дописывает идентификатор сессии только к ссылкам вида <a href=>, но не делает этого для header-ов, яваскрипта, мета-тегов.

Поэтому надо добавлять идентификатор руками, например, так:

header("Location: /script.php?".session_name().'='.session_id());

Автор, вы точно этого хотите? Чем куки не нравятся?
...
Рейтинг: 0 / 0
PHP: Сессия
    #38347049
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hettавтор РНР автоматически дописывает идентификатор сессии только к ссылкам вида <a href=>, но не делает этого для header-ов, яваскрипта, мета-тегов.

Поэтому надо добавлять идентификатор руками, например, так:

header("Location: /script.php?".session_name().'='.session_id());

Автор, вы точно этого хотите? Чем куки не нравятся?
Куки могут быть отключены. Лучше, конечно, сначала проверить их состояние и только после этого принимать решение куда пихать идентификатор сессии.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38347059
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
phpzЛучше, конечно, сначала проверить их состояние и только после этого принимать решение куда пихать идентификатор сессии.Вообще то, PHP это сам умеет делать.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38347081
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vklephpzЛучше, конечно, сначала проверить их состояние и только после этого принимать решение куда пихать идентификатор сессии.Вообще то, PHP это сам умеет делать.
Это я по-поводу
авторЗамечание:

ID сессии не будет передаваться вместе с заголовком Location, даже если включена настройка session.use_trans_sid. Его нужно передавать вручную, используя константу SID.
т.е. если куки отключены, то дописываем SID. Хотя, может его стОит всегда в заголовки Location прописывать?!
...
Рейтинг: 0 / 0
PHP: Сессия
    #38347110
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
phpzХотя, может его стОит всегда в заголовки Location прописывать?!Если только локейшн в пределах домена, а иначе он нафик не нужен. Да и в пределах домена то как то сомнительно - большинство пользуется куками, все же.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38347413
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Та не большинство, а почти все. И какой толк изобретать велосипед по причине "а в друг куки отключены".. Или у вас там какое то мега секретное приложение, политика безопасности которого не предполагает хранение какой либо информации на стороне клиента? Так вас и так поламают если захотят).

Народ уже во всю LocalStorage использует, а вы от кукисов прячетесь))
...
Рейтинг: 0 / 0
PHP: Сессия
    #38347841
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453deblogger,

если бы каждый комп имел айпи независящий от места подключения...так это мак адрес.

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

айпи для того и существует,

Выдвинули за меня тезис и спорите сами с собой. Дело не в нехватке ойпи, ipv4 хватило бы всем желающим, дело в зохавании ойпи и суть такова что ipv6 попросту не зохаваннабле - денег у корпораций планеты не хватит все адреса зохавать.


...
Рейтинг: 0 / 0
PHP: Сессия
    #38347855
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike222Может посетителю не нужна сессия, т.е. не хочет авторизоватся или регистрироваться.

И что будет если она ему не нужна, а вы запустили session_start() из индекса?

Кстати, в хидеры настоятельно рекомендуют писать absolute URI. Все кроме схемы можно взять из сервера, для схемы ( http://) почему-то места не нашлось. Вручную добавляйте.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38349844
Mike222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все получилось вроде как надо, но у меня вопрос:
После создания переменных и присвоения им значений они распознаются при последующей перезагрузке той же страницы или при переходе к другой странице. То есть переход типа header("Location: /index.php"); не перезагружает страница по новой.

Так и должно быть или нет?
То есть пользователь вручную должен обновить страницу.
Нельзя ли как-то реализовать перезагрузку страницы автоматически?
...
Рейтинг: 0 / 0
PHP: Сессия
    #38349845
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лично я ничего не понял в чем у вас проблема.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38349878
Mike222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется в виду после создания сессионных переменных, например,
Код: php
1.
2.
$_SESSION['user_login'] = $_POST['user_name'];
header("Location: /index.php");



После этого чтобы прочитать значение $_SESSION['user_login'] надо перезагрузить (обновить) еще раз страницу index.php вручную.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38349918
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не должно быть такого.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38349965
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mike222Имеется в виду после создания сессионных переменных, например,
Код: php
1.
2.
$_SESSION['user_login'] = $_POST['user_name'];
header("Location: /index.php");



После этого чтобы прочитать значение $_SESSION['user_login'] надо перезагрузить (обновить) еще раз страницу index.php вручную.
Вы из index.php на index.php переход делаете? Может там с кэшированием страниц в браузере какая-то лажа. Попробуйте
Код: php
1.
header("Location: /index.php?" . mt_rand());
...
Рейтинг: 0 / 0
PHP: Сессия
    #38350013
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettНе должно быть такого.Если ТС игнорит куки и использует передачу идентификатора сессии через GET, при этом не передавая его явно, как описано выше - так и будет.

Но вот откуда в таком случае берется правильная сессия - это не ясно.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38350049
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleHettНе должно быть такого.Если ТС игнорит куки и использует передачу идентификатора сессии через GET, при этом не передавая его явно, как описано выше - так и будет.

Но вот откуда в таком случае берется правильная сессия - это не ясно.

Как я понял это у него вообще в пределах одного скрипта.
Короче минимальный скрипт показывающий проблему с студию.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38350087
Mike222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК!
Сейчас подготовлю.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38350630
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike222После создания переменных и присвоения им значений
...
То есть пользователь вручную должен обновить страницу.
Нельзя ли как-то реализовать перезагрузку страницы автоматически?

сейчас это одно и то же. всякие там методы конструирования переменных в сессии - deprecated. $_SESSION['myLovelyGirl']='Elya'; и готово.

Можно, явой. С сервера не достать. Обычно делается как тут - после выполнения действия посылаете налево, оттуда обратно футболите и все устаканивается. Где-то была статья со схемой, не могу найти. слова вроде были $_get $_post refresh problem

Например get читает и посылает прямиком сам на себя

$_SESSION['back_url'] = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];

А когда надо записать, это поручается другому скрипту, который вообще ничего может не показыват, но этот же бакурл поднимается в нем из сессии и возвращает вас обратно откуда вы росли.

Типичный пинг-понг.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38350645
Mike222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приготовил примерчик, но и там все также работало.
В последний момент в настройках поменял

ini_set("session.cache_limiter", "private");

на

ini_set("session.cache_limiter", "nocahe");

и все теперь вроде нормально.

debloggerОбычно делается как тут - после выполнения действия посылаете налево, оттуда обратно футболите и все устаканивается.

По поводу "футболить" наверно тоже прокатит. Спасибо за подсказку.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38357692
Mike222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще два вопроса про сессию.
1. Почему на локальном сервере в строке браузера не видно (не показывает) имя и ид сессии, а на удаленном показывает? Чем грозит это безопасности?
2. Как-то можно скрыть показ (не показывать) имени и ид сессии?
...
Рейтинг: 0 / 0
PHP: Сессия
    #38357702
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike222Чем грозит это безопасности?Только тем что пользователь может скопипастить URL и передать кому то свою текущую сессию.

Mike222Как-то можно скрыть показ (не показывать) имени и ид сессии?Использовать только куки и запретить передачу идентификатора сессии через URL.
...
Рейтинг: 0 / 0
23 сообщений из 48, страница 2 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP: Сессия
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]