Теряется данная из сессии?!

  • Автор темы R00miss
  • Дата начала

R00miss

Guest
Теряется данная из сессии?!

Привет!
Такая штука происходит - нажимаю "Add to cart", ссылка идет - add2cart.php?part_num=xxx&itemcount=1

add2cart.php:
PHP:
<?
session_start();
session_register("cart");

$id=count($cart);

$iItemID=$part_num;
$iItemCount=$iItemCount+intval($itemcount);

$cart[$id][0]=$iItemID;
$cart[$id][1]=$iItemCount;

header("Location: ./viewcart.php");
?>
возращаюсь обратно и нажимаю на другую ссылку "add2cart.php", и предыдущий продукт заменяется новым, вместо того чтобы добавлять еще один... но если нажимаешь update.php:
PHP:
<?
session_start();
session_register("cart");

for($i=0; $i<count($cart); $i++){
	
	//change quantity for all values
	$cart[$i][1]=$a[$i];

                //delete from the cart
	if($r[$i]=="del"){
		unset($cart[$i][0]);
		unset($cart[$i][1]);
	}

}//end FOR

header("Location: ./viewcart.php");
?>
и потом возращаешься и добавляешь новый продукт - то он добавляется нормально, и предыдущий видно... не пойму в чем проблема... please help :)
 

Кром

Новичок
Проблема видимо в том, что ты пишешь session_register("cart"); без проверки на существование этой переменной в сессии.
 

R00miss

Guest
т.е. так надо -
PHP:
if(isset($cart)){session_register("cart");}
?
 

Кром

Новичок
if(!isset($cart)){session_register("cart");}

так надо,если это конечно поможет.
 

trent

Developer
читаем [m]session[/m]
используем $_SESSION

Caution:
If you are using $_SESSION and disable register_globals, do not use session_register(), session_is_registered() and session_unregister(), if your scripts shall work in PHP 4.2 and earlier. You can use these functions in 4.3 and later.
 

R00miss

Guest
Ок, значит пишу так:
PHP:
<?
session_start();

$id=count($cart);
$iItemID=$part_num;
$iItemCount=$iItemCount+intval($itemcount);

$_SESSION['$cart[$id][0]']=$iItemID;
$_SESSION['$cart[$id][1]']=$iItemCount;

header("Location: ./viewcart.php");
?>
Вообще не записывается...
 

netdog

net @
А ТЫ В ЭТОМ УВЕРЕН?????
Сделай print_r($_SESSION);


И для сведения одинарные кавычки не парсируются
( $_SESSION['$cart[$id][1]']=$iItemCount; )
 

Bloody

Guest
2Net Dog
Это форум слэши собачит где надо и где не надо...

2ROOmiss
У меня твой пример 100% работает. Может дело в настройках РНР? Или в версии?
 

netdog

net @
Уу... так у тебя там вообще всё запущено

<?
session_start();
echo '<pre>';
print_r($_SESSION);

$_SESSION['tralala']='text1';
$_SESSION['blablabla']='text2';
$_SESSION['count']++;

echo "\n<a href=$_SERVER[PHP_SELF]>click here</a> ";

?>
 

netdog

net @
2 Bloody
>Это форум слэши собачит где надо и где не надо...
Я давно в курсе... Дело не в слешах а Дело в одинарных кавычках ;)
 

R00miss

Guest
я слэши перед кавычками одинарными не ставлю ;)
 

Bloody

Guest
А!..
Ну, кстати интересная конструкция :)

Тут уж или
$_SESSION['cart'][$id][1]=$iItemCount;
или
$cart[$id][1]=$iItemCount;
ты ROOmiss уж определись?..
 

netdog

net @
2 Bloody
>Ну, кстати интересная конструкция
Так я про Что .....

2 R00miss
>я слэши перед кавычками одинарными не ставлю
%ля... Я про:

$var= 111;
echo '$var'; // Output: $var
echo "$var"; // Output: 111
 

R00miss

Guest
Блин не пойму что за ***
PHP:
<? 
session_start(); 

$id=count($cart); 
$iItemID=$part_num; 
$iItemCount=$iItemCount+intval($itemcount); 

$_SESSION['cart'][$id][0]=$iItemID; 
$_SESSION['cart'][$id][1]=$iItemCount; 

header("Location: ./viewcart.php"); 
?>
такой же результат как и в первом сообщении..
 

netdog

net @
Чел, ты вообще понимаешь то, что ты делаешь?

Ты мой вариант видел? ПРобывал? Разбирался?
 

trent

Developer
PHP:
$_SESSION['cart'][$id][1]=$iItemCount; 
print_r($_SESSION);
//header("Location: ./viewcart.php");
смотри, что лежит в сессии, если ничего нет, смотри свои настройки в php.ini session.save_path, чтобы ссылался на существующую директорию..

также советую писать с error_reporting = E_ALL
 

R00miss

Guest
делал print_r($_SESSION)... правда не понял для чего :)

вот тут еще какой феномен - делаю session_destroy(); запускаю скрипт, потом убираю session_destroy() - и все нормально работает..

>>Ты мой вариант видел? ПРобывал? Разбирался?
какой из них?
 
Сверху