2014-09-12 81 views
0

我有以下问题,我试图设置cookie没有任何成功。所以它看起来像它设置的cookie然而,当我试图访问相同或以下页面,我得到错误的setcookie();函数返回true“未定义指数....”setcookie();没有设置Cookie

<? 
session_start(); 
ob_start(); 


echo setcookie("order",$_SESSION['cart'],time()+3600,'/',NULL); 



//added to see if Cookie is set 
echo "<br/>"; 
var_dump($_COOKIE); 
exit(); 




if($_GET['paypal'] == 1){ 
    header("Location: /paypal-express-checkout/process.php"); 
}else{ 
    header("Location: /insert_order.php"); 
} 
ob_end_flush(); 
exit(); 
?> 

下一页如下这样

<?php 
session_start(); 
include_once("../includes/inc_config.php"); 
include_once("../order.php"); 
include_once("config.php"); 
include_once("paypal.class.php"); 

#region POST 
if(!isset($_GET['token'])) //Post Data received from product list page. 
{ 
    //Mainly we need 4 variables from an item, Item Name, Item Price, Item Number and Item Quantity. 

    if(!isset($_COOKIE['order'])){ 
     exit(); 
    } 
    $paypal_data = ''; 
    $ItemTotalPrice = 0; 
    $order = unserialize($_COOKIE['order']); 
    print_r($order); 
    exit; 
+4

在下一页加载时,Cookie只在“'_COOKIE''”可见“。 – MrTux 2014-09-12 21:31:13

+1

**常见陷阱:**在下一次加载该cookie应该可见的页面之前,Cookie不会变得可见。要测试cookie是否成功设置,请在cookie过期之前检查下一个加载页面上的cookie。 – Class 2014-09-12 21:32:05

+0

根据我原来的帖子,cookie在下一页(下一个加载的页面)不可见 – zbora23 2014-09-12 21:40:33

回答

1

您设置域值设置为NULL。请尝试将NULL远:

echo setcookie("order",$_SESSION['cart'],time()+3600,'/');

或将其设置到您的域名:

echo setcookie("order",$_SESSION['cart'],time()+3600,'/',".yourdomain.com");

+0

我已经尝试过这个的每一个组合,它只是不起作用。 – zbora23 2014-09-12 22:11:10

0

我的var_dump或print_r的的$ _COOKIE变量之前我做它没有获得通过的决定通过。一旦你设置了一些东西,坚持这个想法肯定会被注册到$ _COOKIE变量中。

我同意上面,因为你只可以访问$ _COOKIE在下一次刷新,但有另一种方式来做到这一点,让您的形式或页面更具交互性的语句。

我会登记的cookie,并使用PHP的页面刷新(显示工作... DIV而这就是发生的事情),然后再回来的页面,并尝试做您最初试图做什么。非常基本但很直截了当。

+0

嗨,这个解决方案不起作用,设置meta标签刷新变量后仍然不在COOKIES中。 – zbora23 2014-09-12 22:25:21

+0

尝试将帖子发布到网页服务器以处理数据;刷新不是一个强有力的案例。你需要找出一个机制来做到这一点。 – unixmiah 2014-09-12 22:46:07