我应该检查cookie是否存在后设置它


Should I check for cookie existence right after setting it?

使用良好的开发实践,应该在设置后检查setcookie是否存在,还是知道它已设置为100%?谢谢你。

<?php
    require "includes/settings.php";
    require "functions/php_function_library.php";
    $item_id = $_REQUEST['item_id'];
    $item_qty = $_REQUEST['quantity'];
    echo $item_id;
    echo $item_qty;
    $cookie_guid = guid();
    setcookie("anonymous_cart", $cookie_guid);
    #check that the cookie I just set exists?

    #insert new cart record into DB
    ...
?>

检查返回值,如果为false则失败。否则,你可以认为它是集合(在这种情况下,我从未见过它不集合)。

if(setcookie('anonymous_cart', $cookie_guid)){
    // Joy, cookie was set
}

但是,如果正在设置的cookie是至关重要的,那么检查它不会(太)伤害。

编辑

对于那些指出这并不能保证cookie被接受的人,,我同意,并没有说它可以(它怎么可能?客户端甚至还没有收到cookie)。它仅仅意味着cookie是

您不需要在设置它之后检查它是否存在,但在使用它之前检查它是否存在是最佳实践。

cookie本身就不可靠,因为它们依赖于本地化的浏览器设置。

确保您有适当的有效处理,以防在脚本查找值时无法从客户机检索到该值。在某些情况下,这甚至可能需要在前端指示用户启用cookie或将您的域名添加到他们的例外安全站点列表中,特别是因为您似乎正在实现的是一个购物系统。

首先检查setcookies的返回值,以确保服务器可以发送该值,但不要直接依赖此值来暗示cookie已被接受。在需要使用该值时,始终在cookie全局上使用issetarray_key_exists检查该值是否存在。