从php动态变量设置cookie

时间:2015-01-03 18:19:55

标签: php cookies

我有以下动态php变量。

responseId: <?php echo $checkAvailability->responseId?><br/>
searchId: <?php echo $checkAvailability->searchId?><br/>
totalFound: <?php echo $checkAvailability->totalFound?><br/>

我如何将它们发布到下一页?我尝试了下面的代码,但响应是空的。 第1页:

<?php
$cookie_name = "searchID";
$cookie_value = "$checkAvailability->searchId";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>

第2页:

<?php
    echo "Value is: " . $_COOKIE[searchID];
?>

你可以告诉我一个安全的&amp;工作方法。      - PS:我已经通过在首页代码中移动设置的cookie代码来修复了初始问题。 谢谢。

3 个答案:

答案 0 :(得分:1)

首先,您需要验证浏览器的Cookie是否已启用以及未启用的内容......

其次,如果您要通过$ _COOKIE [$ cookie_name]访问cookie,那么您必须确保将$ cookie_name设置为您创建cookie的'searchID'值。

当我运行上面的代码时,它运行得很好......

您还可以执行print_r($_COOKIE);之类的操作,以确切了解您的Cookie发生了什么......

但是,在某些情况下,您可能会发现使用$_SESSION更合适---请记住,Cookie中的值可能会被篡改......

答案 1 :(得分:1)

找到解决方案:

Use $_SESSION

规则:在您需要存储/检索Cookie的每个页面上,将开始会话代码放在页面顶部代码:

<?php
// Start the session
session_start();
?>

在第1页 - 我们存储cookie的页面:

<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Set session variables
$_SESSION["searchId"] = $checkAvailability->searchId;
echo "Session variables are set.";
?>
</html>
</body>

在第二页或您要检索和使用Cookie的页面上:

<?php
    // Start the session
    session_start();
    ?>
    <!DOCTYPE html>
    <html>
    <body>
<?php
//in my case i wanted to use the cookies as a php variables
$searchId = $_SESSION["searchId"];
?>
    </html>
</body>

http://www.w3schools.com/php/php_sessions.asp

干杯。

答案 2 :(得分:-1)

来自手册:必须在脚本的任何输出之前发送cookie

http://php.net/manual/en/function.setcookie.php

将setcookie代码移动到脚本的开头。