Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:在noJS站点的PHP中使用cookie_Php_Cookies - Fatal编程技术网

PHP:在noJS站点的PHP中使用cookie

PHP:在noJS站点的PHP中使用cookie,php,cookies,Php,Cookies,我正在尝试创建一个使用cookie的类,但由于某种原因,当我尝试在浏览器中注册cookie(使用Chrome版本45.0.2454.85 m)时,它不起作用 我无法理解问题是什么;我可以注册cookie(并在浏览器中查看),但当我使用retrieveCookie($name)函数时,它不起作用 PHP类如下所示: <?php class cookies { public function __construct() { } /** * Register a c

我正在尝试创建一个使用cookie的类,但由于某种原因,当我尝试在浏览器中注册cookie(使用Chrome版本45.0.2454.85 m)时,它不起作用

我无法理解问题是什么;我可以注册cookie(并在浏览器中查看),但当我使用
retrieveCookie($name)
函数时,它不起作用

PHP类如下所示:

<?php
class cookies
{
    public function __construct() {  }

    /**
     * Register a cookie with the browser.
     * @param string $name Name to be given to the cookie
     * @param string $value Value to be put inside the cookie
     * @param int $expire How long the cookie will last, leave at 0 to expire on end of session/when the browser closes
     * @return bool True if cookie is created and false if not
     */
    public function registerCookie($name, $value = '', $expire = 0)
    {
        return setcookie($name, $value, $expire);
    }

    /**
     * Summary of retrieveCookie
     * @param string $name The name of the cookie to retrieve
     * @return bool True if found/not empty and false if not
     */
    public function retrieveCookie($name)
    {
        $return = true;
        isset($_COOKIE[$name]) ?: $return = false;
        !empty($_COOKIE[$name]) ?: $return = false;
        return $return ? $_COOKIE[$name] : $return;
    }
}

有人能帮我吗?例如,我的验证错误吗?

在下一个请求之前,cookie将不可用。@JonStirling,你是什么意思?(您必须原谅我的知识不足,我还不确定我在用COOKIE做什么)$\u COOKIE是根据客户端请求填充的。使用setcookie时,将随响应一起发送cookie。因此,您的新cookie将不会存在于$\u cookie中,直到,1)您发送了cookie,2)客户端发出一个新请求,其中包括您设置的新cookie。@JonStirling,这是有道理的,谢谢您为我澄清:)cookie将在下一个请求之前不可用。@JonStirling,你是什么意思?(您必须原谅我的知识不足,我还不确定我在用COOKIE做什么)$\u COOKIE是根据客户端请求填充的。使用setcookie时,将随响应一起发送cookie。因此,您的新cookie将不会存在于$\u cookie中,直到,1)您发送了cookie,2)客户端发出新请求,其中包括您设置的新cookie。@JonStirling,这是有道理的,谢谢您为我澄清:)
$cookie = new cookies();
$cookie->registerCookie("myName", "Sam", 0);
var_dump($cookie->retrieveCookie("myName"));