从 php 动态变量设置 cookie

Set a cookie from a php dynamic variable

我有以下动态 php 变量。

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

我怎样才能 post 他们到下一页?我试过下面的代码,但响应是空的。 第一页:

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

你能告诉我一个安全和工作的方法吗? - PS:我已经通过在首页代码中移动设置的 cookie 代码来解决最初的问题。 谢谢。

首先,您需要验证您的浏览器的 cookie 是否打开以及什么没有...

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

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

您还可以执行 print_r($_COOKIE); 之类的操作来查看您的 cookie 到底发生了什么...

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

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

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

将 setcookie 代码移至脚本开头。

找到的解决方案:

Use $_SESSION

规则:在您需要 store/retrieve 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>

您要在第 2 页或哪个页面检索并使用 cookies :

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

干杯。