Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.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 奇怪的饼干行为_Php_Cookies - Fatal编程技术网

Php 奇怪的饼干行为

Php 奇怪的饼干行为,php,cookies,Php,Cookies,在PHP中设置cookie时遇到了一个非常非常奇怪的问题。我基本上实现了一个登录功能(非常非常普通),其思想是,如果数据库在使用用户名和密码查询后返回一行,那么一切都很好 我用于查询数据库的代码(似乎工作正常): 我用来测试是否返回一行的代码。同样,它似乎工作得很好 if($statement->fetchColumn() === "1") { $cookieValue = sha1($username.$password); setcoo

在PHP中设置cookie时遇到了一个非常非常奇怪的问题。我基本上实现了一个登录功能(非常非常普通),其思想是,如果数据库在使用用户名和密码查询后返回一行,那么一切都很好

我用于查询数据库的代码(似乎工作正常):

我用来测试是否返回一行的代码。同样,它似乎工作得很好

    if($statement->fetchColumn() === "1")
    {
        $cookieValue = sha1($username.$password);

        setcookie('admin', $cookieValue, 3600, '/');
        $_COOKIE['admin'] = $cookieValue;
        header("Location: ../admin.php");
    }
    else
    {
        // Re-direct to no permissions page.
        header("Location: ../noPermission.html");
    }
代码将重新定向到正确的页面,但是未设置cookie。我已经将路径设置为“/”,以确保它是全局可用的(没有“/”,它就无法工作)。我还在调用该方法后直接设置该值,以确保立即设置cookie

但是,当我进入
admin.html
页面时,我正在调用
$\u COOKIE
数组的
var\u dump
,这就是我得到的:

array(0) { } 

因此,尽管正确的代码块正在运行,但似乎没有设置cookie。

问题在于调用
setcookie
。第三个参数需要时间戳,而不是持续时间。在这里,您的cookie甚至在存在之前就过期了。 你应该试试:


如果删除重定向,cookie是否已设置?我刚刚测试过。事实上,它确实被设置好了。为什么re direct会导致cookie无法存储?刷新admin.php并再次检查代码是否快了?试着拖延一下。可能是向上重定向1级(
。/
)导致cookie位于错误的位置?也许
admin.php
上有什么东西正在删除cookie?亲爱的耶稣。我已经用PHP编程两年了;我究竟怎么会犯这样愚蠢的错误!?谢谢,我将在6分钟内接受。:)@克丽丝:每个人都会犯错。如果有疑问,检查文档是一个好习惯。;-)
array(0) { } 
setcookie('admin', $cookieValue, time() + 3600, '/');