Помогите с проблемой разобразаться - функция session_id() ничего не возвращает.
Т.е. конструкция echo "session id = ".session_id(); ничего не отображает,
результат такой: session id = .
Никто не сталкивался с такой проблемой ?
Спустя 4 минуты, 39 секунд (16.11.2010 - 21:46) Sanchopansa написал(а):
Вот с PHP.net
Цитата |
Return Values session_id() returns the session id for the current session or the empty string ("") if there is no current session (no current session id exists). |
Спустя 9 минут, 13 секунд (16.11.2010 - 21:56) cln2008 написал(а):
Но при попытке вызвать session_start() дает:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home ....
и при всем при этом сессия работает и переменные через нее нормально передаю
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home ....
и при всем при этом сессия работает и переменные через нее нормально передаю
Спустя 1 минута, 38 секунд (16.11.2010 - 21:57) Sanchopansa написал(а):
ну походу это надо делать до какого либо вывода в поток... попробуй получить ID до вывода.. ну и я надеюсь ты уже осуществлял работу с сесией.. тоесть она создана..
Спустя 10 минут, 45 секунд (16.11.2010 - 22:08) cln2008 написал(а):
блин, не могу понять
есть код
но каждый раз ИД дается разный ...
есть код
$SessionId = session_id();
if ( empty($SessionId) )
{
session_start();
$SessionId = session_id();
}
но каждый раз ИД дается разный ...
Спустя 1 минута, 1 секунда (16.11.2010 - 22:09) DmitryOpalev написал(а):
А разве не надо делать session_register()
Или хотя бы $_SESSION['lolo'] = "";
Или хотя бы $_SESSION['lolo'] = "";
Спустя 1 минута, 1 секунда (16.11.2010 - 22:10) linker написал(а):
Сначала всегда в самом верху session_start(), а уже потом остальной код.
Спустя 14 секунд (16.11.2010 - 22:10) sharki написал(а):
Я как то раз задавал этот вопрос насчет session_id(); так вот, ОН НЕ ПОСТОЯННЫЙ, все время генерируется новый.
Спустя 4 минуты, 24 секунды (16.11.2010 - 22:15) cln2008 написал(а):
DmitryOpalev, у меня указанная выше конструкция в index.php, а любая ссылка на страницах переводит на index с набором управляющих переменных, в зависимости от которых
уже определяю что надо делать ...
или может спасет
?
уже определяю что надо делать ...
или может спасет
if (!isset($_SESSION['lolo']))
{
$_SESSION['lolo'] = session_id();
}
?
Спустя 5 минут, 48 секунд (16.11.2010 - 22:20) Sanchopansa написал(а):
вот тебе два кода для сравнения.. запусти и покрути..
и второй
а вот мои результаты выполнения этого скрипта ...
Для первого случая
die(var_dump(session_id()));
и второй
session_start();
die(var_dump(session_id()));
а вот мои результаты выполнения этого скрипта ...
Для первого случая
Цитата |
string(0) "" |
Для второго случая
Цитата |
string(32) "cfb2769a6cc772dc713a7c1973ab423d" |
Спустя 1 час, 18 минут, 49 секунд (16.11.2010 - 23:39) cln2008 написал(а):
Sanchopansa, ну да ... только у меня задача - получить какой-то уникальный идентификатор на то время, пока пользователь сидит на сайте ...
а session_id все время меняется
а session_id все время меняется
Спустя 25 минут, 19 секунд (17.11.2010 - 00:05) linker написал(а):
Читаем When using session cookies, specifying an id for session_id() will always send a new cookie when session_start() is called, regardless if the current session id is identical to the one being set.
Спустя 10 часов, 16 минут, 31 секунда (17.11.2010 - 10:21) cln2008 написал(а):
Попробую поставить вопрос по-другому - я хочу сделать корзину и мне нужен какой-то уникальный идентификатор, который был "жил" до тех пор, пока пользователь не закроет
окно браузера.
Никто не сталкивался с такой задачей ?
окно браузера.
Никто не сталкивался с такой задачей ?
Спустя 58 минут, 18 секунд (17.11.2010 - 11:19) linker написал(а):
session_start(); в массиве $_SESSION храни данные текущей сессии, никаких session_id нафиг не нужны.
Спустя 12 минут, 44 секунды (17.11.2010 - 11:32) Sanchopansa написал(а):
Капец.. ну ты бы так сразу и спросил и все было бы решино быстро.. короче читай ответ linker
Спустя 43 минуты, 43 секунды (17.11.2010 - 12:16) cln2008 написал(а):
linker прав на все 1000 ... но мне надо ПОЛУЧИТЬ идентификатор, как его хранить - тут вопросов нет ... попробую еще подробней
для формирования заказа нужен какой-то уникальный номер, рассматривал 2 пути
1. при нажатии на кнопку "в корзину" делается вставка в таблицу заказов и получаю
оттуда последний IDENTITY. дальше его использую его как номер заказа. при следующих
нажатиях на кнопку просто проверяю - а есть ли запись с таикм ИД, и если есть,
то уже вставка идет в таблицу товаров заказа
Такой способ я использовал на одном сайте, когда оформлял заказ на печать фото
2. попробовать получить ИД сесии и сипользовать его в качестве идентификатора
список товаров заказа хранить пока в массиве и при подтверждении уже записывать
в БД, получать какой-то номер заказа и выдавать его пользователю (выдавать 32 символа
как номер заказа - жестоко для пользователя;) )
Вот сейчас решил попробовать вариант 2 ... но что-то пока не получается
для формирования заказа нужен какой-то уникальный номер, рассматривал 2 пути
1. при нажатии на кнопку "в корзину" делается вставка в таблицу заказов и получаю
оттуда последний IDENTITY. дальше его использую его как номер заказа. при следующих
нажатиях на кнопку просто проверяю - а есть ли запись с таикм ИД, и если есть,
то уже вставка идет в таблицу товаров заказа
Такой способ я использовал на одном сайте, когда оформлял заказ на печать фото
2. попробовать получить ИД сесии и сипользовать его в качестве идентификатора
список товаров заказа хранить пока в массиве и при подтверждении уже записывать
в БД, получать какой-то номер заказа и выдавать его пользователю (выдавать 32 символа
как номер заказа - жестоко для пользователя;) )
Вот сейчас решил попробовать вариант 2 ... но что-то пока не получается
Спустя 23 минуты, 21 секунда (17.11.2010 - 12:39) cln2008 написал(а):
и есть еще вопрос - а может ли кто-то помочь с реализацией корзины ? за соотв вознаграждение ...
Спустя 35 минут, 21 секунда (17.11.2010 - 13:15) linker написал(а):
Есть такой массив $_SESSION, он для каждого пользователя грубо говоря свой. Id сессии хранится в куках или передается в адресной строке. Например, пользователь зашел на сайт
session_start();добавил что-то себе в корзину в количестве "n"
$_SESSION['basket'][$id_tovar] = $count_tovar;выводим ему список товаров корзине
$result = mysql_query("SELECT `id`, `name` FROM `tovars` WHERE `id` IN (" . implode(',', array_keys($_SESSION['basket'])) . ")");Удаляем товар из корзины
echo 'В корзине: <br>'
while($Tovar = mysql_fetch_assoc($result))
echo $Tovar['name'] . ' в количестве ' . $_SESSION['basket'][$Tovar['id']] . '<br>';
$remove_id = isset($_GET['id']) ? abs($_GET['id']) : 0;и т.д. никакие session_id() не нужны тут вообще.
if (isset($_SESSION['basket'][$remove_id]))
unset($_SESSION['basket'][$remove_id]);
Спустя 7 минут, 11 секунд (17.11.2010 - 13:22) Sanchopansa написал(а):
Вот тут почитай.. рассматривали это http://phpforum.ru/index.php?showtopic=35897&hl=
Спустя 1 день, 3 часа, 45 минут, 40 секунд (18.11.2010 - 17:07) cln2008 написал(а):
народ, вылезла у меня другая проблема ....
или туплю или хз ...
работаю через $_SESSION
когда пользователь нажал на кнопку "Купить", то
сначала проверяю
и если ничего нет, то вставка в БД, получаю последний ид и присваиваю его
в $_SESSION['OrderId'].
вывожу
после возврата в index.php, вывожу
никто не сталкивался с такой ситуацией ?
или туплю или хз ...
работаю через $_SESSION
когда пользователь нажал на кнопку "Купить", то
сначала проверяю
isset($_SESSION['OrderId']
и если ничего нет, то вставка в БД, получаю последний ид и присваиваю его
в $_SESSION['OrderId'].
вывожу
print_r($_SESSION);, показывает что $_SESSION['OrderId'] есть и равен нужному значению.
после возврата в index.php, вывожу
print_r($_SESSION);и вот тут мне показывается, что $_SESSION['OrderId'] и близко нет ....
никто не сталкивался с такой ситуацией ?
Спустя 1 час, 28 минут, 15 секунд (18.11.2010 - 18:36) cln2008 написал(а):
все, проблема решена ;)
помогла конструкция
помогла конструкция
$sId = session_id();
if ( empty($sId) ) { session_start(); }