首页 > 解决方案 > Cookie 生成错误:不要设置 [PHP]

问题描述

我用这段代码生成一个字符串:

$order = new Order();
$orderReference = $order->generateNewOrderReference();

echo $orderReference;
setcookie("orderReference", $orderReference, time() + 30*24*60*60, '/', null, false, true);
echo 'papa';

public function generateNewOrderReference() {
    $orderReference = strtoupper(bin2hex(openssl_random_pseudo_bytes(4)));

    while ($this->orderReferenceAlreadyExists($orderReference)) {
        $orderReference = strtoupper(bin2hex(openssl_random_pseudo_bytes(4)));
    }

    return $orderReference;
}

public function orderReferenceAlreadyExists($orderReference) {
    $statement = $this->database->prepare("SELECT order_reference FROM $this->table_name WHERE order_reference = :order_reference");
    $statement->bindParam(':order_reference',$orderReference);
    $statement->execute();

    if (!empty($statement->fetch())) {
        return true;
    }
    return false;
}

这一代有效,因为当我看到我的观点时我有这个:6239B30Bpapa

但我不明白为什么 cookie 没有在我的 localhost 中设置:/。请问有人有想法吗?

看起来任何cookie都可以在这里设置。

此外,我有一个 MVC 架构,共享的代码代表页面模型

其中每个控制器使用 pageName 重定向到路由器

我的路由器方案如下所示:

对不起我的英语。我是法国人。

当我将此代码放入控制器时,可以设置 cookie。所以,我认为如果已经有html代码,我就无法生成cookie。是真的吗?

标签: phpcookiessetcookie

解决方案


推荐阅读