Сессия обнуляется

walaby

Новичок
Сессия обнуляется

Добрый день (вечер)!
Не могу понять одну вещь - сделал корзину заказов на сайте, на Денвере все работает на УРА! но вот на хостинге (пробовал на разных) сессия обнуляется (undefined) после перехода на страницу заказа...
session_save_path настроен правильно
session_id сохраняется
Сама схема сайта составлена так - идет сначала include с левым сайдбаром, где список выбранных товаров:
PHP:
if (!empty($_SESSION['order'])) {
foreach ($_SESSION['order'] as $order) {
echo "<li><a href=\"";
bloginfo('url');
echo "/catalog/?model={$order['id']}&category={$order['category']}\" >{$order['name']}</a></li>\n";
}
}
затем контентная область:
PHP:
foreach ($_SESSION['order'] as $order) {
                        			echo "<p id=\"orderp$order[id]\">$order[name] (<span id=\"spanp$order[id]\" >$order[price]</span> р.) 
                        			<input type=\"text\" name=\"count[$order[id]]\" id=\"inp$order[id]\" value=\"$order[count]\" onchange=\"order_input(this)\" size=\"3\" style=\"text-align: center;\"/> = 
                        			<span id=\"sum$order[id]\" class=\"sumspan\">$order[price]</span> р.
                        			<a href=\"javascript:;\" onclick=\"deleteOrder($order[id])\">[удалить]</a></p>";
                        		}
корзина "аяксовская" на jQuery - делается файл с объявлением переменных сессии, функции вывода заказа:

PHP:
.....
case 'add_order':
		$mysql_result = @mysql_query("SELECT * FROM `options` LIMIT 0, 1");
		$options =  @mysql_fetch_object($mysql_result);
		$exchange = $options->exchange_rate;

		$mysql_result = @mysql_query("SELECT * FROM `products` WHERE `product_id`=$id");
		if ($product = @mysql_fetch_object($mysql_result)) {
			$name = $_GET['name'];
			
			$_SESSION['order'][$id]['id'] = $product->product_id;
			$_SESSION['order'][$id]['name'] = $product->product_name;
			$_SESSION['order'][$id]['category'] = $product->product_category;
			$_SESSION['order'][$id]['count'] = 1;
			$_SESSION['order'][$id]['price'] = ($product->product_valuta==0)?$product->product_price: ( $product->product_price*$exchange );
			$_SESSION['order_count'] = count($_SESSION['order']);

			$ret['id'] = $product->product_id;
			$ret['res'] = 'OK';
		} else {
			$ret['res'] = 'ERROR';
		}
		break;

	case 'show_order':

		if (isset($_SESSION['order'])) {
			$ret['order'] = $_SESSION['order'];
			$ret['count'] = empty($_SESSION['order_count'])?'0':$_SESSION['order_count'];
			$ret['sum'] =  countSum();
			$ret['res'] = 'OK';
		} else {
			$ret['res'] = 'EMPTY';
		}


		break;
.....
в самом начале движка делается session_start()

Люди добрые, подскажите, я уже перелазил весь интернет, юзал поиски форума итп...

поставил сайт на тестовый домен на хостинге - могу скинуть урл)

ЗАРАНЕЕ БЛАГОДАРЕН!
 

walaby

Новичок
дык, уже все перепробовал, просто может кто сталкивался с данной проблемой...
мб настройки сервера - но на 2х достаточно известных хостингах обнуляются сессии... а на денвере все ОК!
 

x-yuri

Новичок
но вот на хостинге (пробовал на разных) сессия обнуляется (undefined) после перехода на страницу заказа...
сразу после session_start сессия пустая на странице заказа?
 

walaby

Новичок
Автор оригинала: x-yuri
сразу после session_start сессия пустая на странице заказа?
session_start идет в самом-самом начале, т.е. после нее идут все хеадеры, сам хеадер, затем левый сайдбар (там поставил var_dump - он показывает что что-то есть, но названия нет, вместо него DESC - при ctrl+f5 сессия уже полностью обнуляется) - затем контентная область с надписью "ВАША КОРЗИНА ПУСТА!" (проверка на empty($_SESSION['order']) )

Автор оригинала: *****
что - "всё"?
что именно пробовал? по пунктам
ну например, переставлял session_start - ставил до хеадеров и после, объявлял переменные сессии с помощью session_register() итп
 

Фанат

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

Фанат

oncle terrible
Команда форума
тогда бы локально не работало.
вообще, отладка аякса, конечно, сложнее, чем пхп.
для начала я бы определился, попадает ли у нас что-то в корзину.
и в какой момент пропадает.
и действительно ли сид сохраняется.
 

Deserved

Новичок
Автор оригинала: walaby
дык, уже все перепробовал, просто может кто сталкивался с данной проблемой...
мб настройки сервера - но на 2х достаточно известных хостингах обнуляются сессии... а на денвере все ОК!
Отсюда я предположил что на каком-то денвере session.auto_start = 1 , если я правельно понимаю смысл данно дерективы :)

Автор оригинала: *****
тогда бы локально не работало.
вообще, отладка аякса, конечно, сложнее, чем пхп.
для начала я бы определился, попадает ли у нас что-то в корзину.
и в какой момент пропадает.
и действительно ли сид сохраняется.
Я подумал что он соберает инфу в сессию и через аякс посылает её куда-то на обработку, вот имено там и нету этой session_start() , а так если честно ТЗ не полностью и не коректно изложена, надо пальцем в небо тыкать чтоб догодаться.
 

Leonid

PHP? нет, не слышал...
у меня была проблема на одном сайте: ни с того ни с сего пропадали сессии, а в них заказы пользователей. Оказалось вот что: сервер воспринимал сайт с www и без как 2 разных сайта. И если при переходе по какой-либо ссылке это www терялось или наоборот добавлялось, то сессия обнулялась. У меня это происходило при переходе на сайт биллиноговой системы и обратно:

http://www.site.ru/basket.php --> www.billing.ru (оплата заказа) ---> http://site.ru/basket.php (заказ оплачен, а где он?)
 

x-yuri

Новичок
и такое бывает, только сессия не обнуляется - создается 2 сессии
 

Leonid

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

Фанат

oncle terrible
Команда форума
Leonid, мы тебя поняли, еще с первого раза. Спасибо.
 
Сверху