2014-09-12 105 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