2013-03-06 4 views
0

переменные сеанса утерянные после заголовка перенаправления Даже я б session_start(); in All PagesПеременные сеанса теряются после заголовка перенаправления

Вот мой код ..

<?php 
session_start(); 
$id=$_REQUEST['id']; 
$pid=$_POST['pid']; 
$_SESSION['pid']=$_POST['pid']; 

Добавить в корзину Функция

include("cart/functions.php"); 
if($_REQUEST['command']=='add' && $_REQUEST['id']>0){ 
$id=$_REQUEST['id']; 
addtocart($id,1); 
header('location:shoppingcart.php'); 
exit(); 
} 

После нажатия на эту кнопку $ _SESSION ['pid'] = $ _ POST ['pid']; `Disappear From All Pages?

<input type="button" class="button1" value="Add To Cart" 
onclick="addtocart(<?php echo $row3['id']?>);" /> 
</div> 
</div></form> 
+0

Потому что вы не POST каждой страницы '$ _SESSION [ 'PID'] = $ _ POST [ 'PID'];' будет вероятно, иногда не запускаются правильно, тем самым убивая ваши данные, хранящиеся в вашем сеансе, и, таким образом, не проверяются в других сегментах кода. Включите 'error_reporting()', и вы, вероятно, увидите, что пойдет не так :) – 2013-03-06 23:42:23

ответ

1

header('location:shoppingcart.php'); вынужденная редирект, нет POST, когда это происходит, так что линия $_SESSION['pid']=$_POST['pid']; будет не иметь никакого эффекта. Если вы должны сделать Cookieless сеансов, смотреть в use-trans-sid: http://www.php.net/manual/en/session.configuration.php#ini.session.use-trans-sid

+0

спасибо, я сделал это, но вы можете дать мне решение этой проблемы http://stackoverflow.com/questions/15357372/in-php-for -loop-show-only-one-row-from-mysql-database? noredirect = 1 # comment21697702_15357372 та же проблема, с которой я столкнулся прямо сейчас –

0

Вы, вероятно, установить $_SESSION['pid'] = $_POST['pid'] в каждом запросе - даже если ваш POST даже не pid в нем.

Попробуйте изменить

$_SESSION['pid']=$_POST['pid']; 

к этому

if (isset($_POST['pid'])) { 
    $_SESSION['pid'] = $_POST['pid']; 
}