powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP: Сессия
48 сообщений из 48, показаны все 2 страниц
PHP: Сессия
    #38340978
Mike222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, я так и не понял как организовать сессию, что не так тут.
В mainpage.php не могу проверить значение $_SESSION['user_role']

В index.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?php
	if (!isset($_SESSION))
	{
		//session_save_path($_SERVER['DOCUMENT_ROOT'].'/session');
		session_save_path(dirname(__FILE__)."/session");
		ini_set('display_errors',1);
		error_reporting(E_ALL);
		ini_set("session.use_cookies", 0);
		ini_set("session.use_trans_sid", 1);
		//ini_set("register_globals", "On");
		//ini_set("session.cache_limiter", "private");
		//session_name("session123");
		//var_dump(session_start());
		session_start();
		//session_register('user_login');
		$_SESSION['user_login'] = "USR";
	}    

	header("Location: /mainpage.php");
?>


**********************************************
В mainpage.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?php
    session_start();
	.................
	.................
	if ($_SESSION['user_role'] == "USR")
	{
		.................
		.................
	}
	else
	{
		.................
		.................
	}
?>
...
Рейтинг: 0 / 0
PHP: Сессия
    #38341016
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$_SESSION всегда существует
...
Рейтинг: 0 / 0
PHP: Сессия
    #38341121
Mike222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett$_SESSION всегда существует

Это вопрос или утверждение?
...
Рейтинг: 0 / 0
PHP: Сессия
    #38341147
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще это было утверждение, но оно не верное. Если не делать старт сессии то супер массива нет.

А вообще, найдите 5 отличий
Код: php
1.
$_SESSION['user_login'] = "USR";



Код: php
1.
if ($_SESSION['user_role'] == "USR")
...
Рейтинг: 0 / 0
PHP: Сессия
    #38341170
Mike222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно $_SESSION['user_role'], здесь чуть ошибся.
Но у меня все правильно.

session_start(); в обоих файлах не старт сессии, или как-то по другому надо?
...
Рейтинг: 0 / 0
PHP: Сессия
    #38341173
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?php
	if (!isset($_SESSION))
	{
		//session_save_path($_SERVER['DOCUMENT_ROOT'].'/session');
		session_save_path(dirname(__FILE__)."/session"); //путь верно указан? Каталог доступен для записи?
		ini_set('display_errors',1);
		error_reporting(E_ALL);
		ini_set("session.use_cookies", 0);
		ini_set("session.use_trans_sid", 1);
		//ini_set("register_globals", "On");
		//ini_set("session.cache_limiter", "private");
		//session_name("session123");
		//var_dump(session_start());
		var_dump(session_start(););
		//session_register('user_login');
		$_SESSION['user_login'] = "USR";
	}    

	header("Location: /mainpage.php");
?>
...
Рейтинг: 0 / 0
PHP: Сессия
    #38341176
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
var_dump(session_start()); - двоеточие там лишнее, я опечатался.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38341194
Mike222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, путь доступен.
Но иногда создается сразу несколько файлов сессии типа этого sess_rjafmoj3vpv9tpv808trmih7h7, с разными идами, а иногда один файл.
Я так понимаю, что должен быть один файл. Правильно?
...
Рейтинг: 0 / 0
PHP: Сессия
    #38341220
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
Для того, чтобы иметь доступ к переменным сессии на любых страницах сайта, надо написать ТОЛЬКО ОДНУ(!) строчку в самом начале КАЖДОГО файла, в котором нам нужны сессии:
session_start();
И далее обращаться к элементам массива $_SESSION. Например, проверка авторизации будет выглядеть примерно так:
session_start();
if ($_SESSION['authorized']<>1) {
header("Location: /auth.php");
exit;
}



Тыц
...
Рейтинг: 0 / 0
PHP: Сессия
    #38341352
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понял в одном случае вы изменяете путь к сессиям, а в другом он ищет их по дефолтному адресу и естественно не находит...
...
Рейтинг: 0 / 0
PHP: Сессия
    #38341577
Mike222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett Как я понял в одном случае вы изменяете путь к сессиям, а в другом он ищет их по дефолтному адресу и естественно не находит...

Что-то подобно и происходит.
Перед каждым session_start(); надо указывать путь к сессиям session_save_path(dirname(__FILE__)."/session");?
Например, вот так будет правильно?

session_save_path(dirname(__FILE__)."/session");
session_start();
...
Рейтинг: 0 / 0
PHP: Сессия
    #38341626
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mike222Hett Как я понял в одном случае вы изменяете путь к сессиям, а в другом он ищет их по дефолтному адресу и естественно не находит...

Что-то подобно и происходит.
Перед каждым session_start(); надо указывать путь к сессиям session_save_path(dirname(__FILE__)."/session");?
Например, вот так будет правильно?

session_save_path(dirname(__FILE__)."/session");
session_start();А чем дофолтный путь сессий обидел?
...
Рейтинг: 0 / 0
PHP: Сессия
    #38341627
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike222,

А зачем указывать этот путь?
...
Рейтинг: 0 / 0
PHP: Сессия
    #38341662
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сами себе проблемы ищут)
...
Рейтинг: 0 / 0
PHP: Сессия
    #38341796
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

Тут очевидно дело обычное. Автор где-то нарыл кусок кода и приспособил к себе. Теперь как скульптор будет отсекать лишнее пока одна строка не останется. :)
...
Рейтинг: 0 / 0
PHP: Сессия
    #38344194
Mike222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обнаружил, что сессия не работает, т.е. не присваивает переменным значения только в Mozilla, а в остальных (Safari, Opera, Chrome, IE) все нормально.
Подскажите в чем может быть дело и как исправить?
...
Рейтинг: 0 / 0
PHP: Сессия
    #38344570
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike222,

В смысле строка

session_save_path(dirname(__FILE__)."/session")

меняет путь к кукям у клиента?

Я может чего-то не понимаю, но схема примерно такова: на сервере лежит дамп переменной в файле к которому вы можете обращаться в течении определенного времени из разных скриптов. При обращении дамп обращается в переменные, возвращается в память, короче. У клиента лежит печенька (cockie) в которой, допустим, записан идентификатор сессии, по которому вы можете получить связанные с юзером переменные в записи сессии и значения.

Если у клиента отключены куки или стоит еще какое плугоПО которое запрещает их юзать по некоторым признакам - вы не сможете идентифицировать клиента и следовательно не получите ничего полезного из записей сессии.

Ну, или типа того. В мануале про сессии все расписано.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38344575
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для скрипта - сервер это локаль. Оффлайн. В оффлайне такие методы применяются с восхода компов. Файл это дамп куска памяти а первые файлы были в виде продырявленных картонных карточек. Любительские приложения юзают обмен данными через файлы напропалую. $_SESSION такой же файл как и любые другие и все что вам нужно это отождествить юзера по какому-то признаку. Если бы каждый комп имел IP адрес независимо от места включения в сеть, то есть если бы каждый комп был сервером - этим признаком был бы ойпи. Пока что приходится писать клиенту в куки некий ключ по которому он впоследствии и отождествляется.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38344756
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
deblogger,

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

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

айпи для того и существует, что в отличии от макадреса - он как бы идентифицирует точку подключения.

АНАЛОГ
легко работать почте если писать кому ты пишешь письмо, а не где человек находиться?

тоесть вместо москва, ул. ленина 25 кв 145 - писать - гошику сидоровичу попугайло, 1977г р.(серия паспорта и кем выдан)

:):):)

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

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

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

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

тоесть впринципе, ты можешь одновремено 1000 подключений вести к одному сайту и будет 1000 разных сесий раз тебе такое надо (ну скажем спамить форумы, или проводить анализ(тестирование) работы сайта)



ЗЫ мы же все понимаем чем примари кей независящий ни от чего(автоинкремент, юник_айди....) лучше , чем скажем серия паспорта(что впринципе тоже уникальна) или другие данные которые по своей природе уникальны.

-основные выгоды, что можно абстрагировать работу связей от данных(скажем везде примари это число интежер -а не по ситуации, где варчар, где интежер, где бинари , где ещо какая охинея)

-в будущем, при расширении функционала, или изменении архитектуры, то что было уникальным, может потерять это свойство.
ПРИМЕР - серияномер паспорта в таблице паспорта - вышел закон, серияномер национального и международного паспорта должны совпадать :) и крантец примари кею ввиде серииномера
...
Рейтинг: 0 / 0
PHP: Сессия
    #38344785
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Mike222
Код: php
1.
		ini_set("session.use_cookies", 0);


Зачем-то запретили использовать куки
...
Рейтинг: 0 / 0
PHP: Сессия
    #38344991
Mike222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почистил куки и стал присваивает переменным значения.
Но теперь другая проблема - отваливается сессия.
Что посоветуете проверить?
...
Рейтинг: 0 / 0
PHP: Сессия
    #38345464
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike222,

Выложите куда то ваши исходные файлы кода и дайте ссылку.
...
Рейтинг: 0 / 0
PHP: Сессия
    #38345733
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как понять "отваливается"?
...
Рейтинг: 0 / 0
PHP: Сессия
    #38346216
Mike222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создается файл сессии sess_ho1n8vg3fos43gli54c2lnno16 с таким содержанием:
session_id|s:26:"ho1n8vg3fos43gli54c2lnno16";session_name|s:9:"mike222";
user_login|s:5:"admin";user_role|s:3:"adm";ip|s:9:"127.0.0.1";

Но при переходе обратно по header("Location: /index.php") (может не так надо сделать возврат)
что-то происходит не так или в index.php у меня что-то не то написано, т.е. на странице
index.php значение var_dump($_SESSION) пусто, хотя на диске имеется файл сессии с переменными
и правильными их значениями.

Фаил index.php
Код: php
1.
2.
3.
4.
5.
6.
7.
<?php
	error_reporting(E_ALL);
	if (isset($_REQUEST[session_name()]))
	{
		session_start();
	}
?>


Фаил admin.php
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
<form id="autorize_frm" enctype="multipart/form-data" action="autorize.php" method="post">
	<h1>Авторизация</h1>
	<label class="label">Логин:</label>
	<input class="input_field" type="text" maxlength="20" name="user_name" placeholder="Ваш логин" value="" />
	<label class="label">Пароль:</label>
	<input class="input_field" type="password" maxlength="20" name="password" placeholder="Ваш пароль" value="" />
	<input id="enter" type="submit" name="login" value="Войти" />
    <input id="register" type="submit" name="register" value="Регистрация" />
</form>


Фаил autorize.php
Код: 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.
56.
57.
58.
59.
60.
<?php
    if (!isset($_SESSION))
    {
        ini_set("display_errors", 1);
        error_reporting(E_ALL);
        ini_set("session.use_cookies", 0);
        //ini_set("session.use_only_cookies", 1);
        ini_set("session.use_trans_sid", 1);
        ini_set("session.save_handler", "files");
        //ini_set("session.save_handler", "user");
        //ini_set("register_globals", "On");

        ini_set("session.name", "mike222");

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

        ini_set('session.cookie_lifetime', '2000');
        ini_set("session.gc_maxlifetime", "1800");
        ini_set("session.gc_probability", 10);

        ini_set("session.cookie_path", $_SERVER['DOCUMENT_ROOT'] . "/session");
        ini_set("session.save_path", $_SERVER['DOCUMENT_ROOT'] . "/session");

        session_start();
    }

    if (isset($_POST['login']))
    {
        $user_login = strip_tags(htmlspecialchars($user_name));
        $userpass = strip_tags(htmlspecialchars($password));
        $userpass = md5($userpass); 
		.............................
		.............................
		.............................

		include_once("../admin/classes/class_database.php");
		$objdatabase = new database();
		$objdatabase->sqluserlogin($user_login);
		
        if ($userpass != $user_pass)
        {
			.............................
			.............................
			.............................
			exit();
        }
        else
        {
			$_SESSION['session_id'] = session_id();
            $_SESSION['session_name'] = session_name();
            $_SESSION['user_login'] = $user_login;
            $_SESSION['user_role'] = $user_role;
            $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
        }
    }

	header("Location: /index.php");
    exit();
?>
...
Рейтинг: 0 / 0
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
48 сообщений из 48, показаны все 2 страниц
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP: Сессия
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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