2014-09-12 3 views
0

У меня есть следующая проблема: я пытаюсь установить файлы cookie без каких-либо успехов. setcookie(); функция возвращает истину, так это выглядит, как это установка куки, однако, когда я пытаюсь получить доступ к нему в той же или следующей странице я получаю ошибку «Undefined индекс ....»setcookie(); не задает куки

<? 
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

+1

** Общие ошибки: ** 'Cookies не станут видимыми до следующей загрузки страницы, на которую должен быть виден файл cookie. Чтобы проверить, был ли файл cookie успешно установлен, проверьте файл cookie на следующей странице загрузки до того, как cookie истечет. ' – Class

+0

В соответствии с моим оригинальным сообщением cookie не отображается на следующей странице (следующая загруженная страница) – zbora23

ответ

1

Вы устанавливаете значение домена равным NULL. Попробуйте оставить NULL прочь:

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

или установить его на свой домен:

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

+0

Я пробовал каждую комбинацию этого, и он просто не работает. – zbora23

0

Я var_dump или print_r переменную $ _COOKIE, прежде чем принять решение о том, что он не получает прошло через. Если подумать, что вы установили, что что-то зарегистрировано в переменной $ _COOKIE, обязательно.

Я согласен с вышеприведенными утверждениями, так как вы можете получить доступ к $ _COOKIE при следующем обновлении, но есть другой способ сделать это, чтобы ваша форма или страница стали более интерактивными.

Я бы зарегистрировал файл cookie и обновил php-страницу (показывая рабочий ... div, пока это происходит), затем вернитесь на страницу и попытайтесь сделать то, что вы изначально пытались сделать. Очень простой, но довольно прямой.

+0

Привет, это решение не работает, после установки метатега для обновления переменной все еще нет в COOKIES. – zbora23

+0

Постарайтесь отправить на страницу веб-серверу для обработки данных; обновление не является сильным. Вам нужно выяснить механизм для этого. – unixmiah