可以使用PHP';s设置cookie是否接受非数字键?如果是,为什么不设置此cookie?

可以使用PHP';s设置cookie是否接受非数字键?如果是,为什么不设置此cookie?,php,cookies,Php,Cookies,我试图将cookie设置为登录脚本的一部分,但cookie似乎从未设置。我用大量的调试点检查了代码,调用了st cookie,setcookie响应true,但检查时不存在cookie。我已经用chrome浏览器查看了我的cookies,但这个应用程序没有cookies 在此之前的步骤检查已发送的标题,因此我知道这不是问题所在 <?php // ... public function set_cookie($cookie,$value,$time=0){ $cookieCONF =

我试图将cookie设置为登录脚本的一部分,但cookie似乎从未设置。我用大量的调试点检查了代码,调用了st cookie,setcookie响应true,但检查时不存在cookie。我已经用chrome浏览器查看了我的cookies,但这个应用程序没有cookies

在此之前的步骤检查已发送的标题,因此我知道这不是问题所在

<?php
// ...
public function set_cookie($cookie,$value,$time=0){
    $cookieCONF = core::get()->factory()->get_config('cookie',array('path'=>'/','domain'=>'.'));
    core::get()->debug()->log("COOKIE[{$cookie}]", $value, FALSE, 7);
    if($time!==0){
        $time= time()+$time;
    }
    if(!is_array($value)){
        setcookie($cookie, $value, $time, $cookieCONF['path'], $cookieCONF['domain']);
    }else{
        foreach($value as $val=>$ue){
            core::get()->debug()->log("{$cookie}[{$val}]", $ue, FALSE, 8);
            if(setcookie("{$cookie}[{$val}]", $ue, $time, $cookieCONF['path'], $cookieCONF['domain'])){
                core::get()->debug()->log('COOKIE RESULT',"SET {$cookie}[{$val}]={$ue}", FALSE, 8);
            }else{
                core::get()->debug()->log('COOKIE RESULT',"NOPE {$cookie}[{$val}]={$ue}", FALSE, 8);
            }
        }
    }
}
public function set_cookie($cookie,$value,$time=0){
    $cookieCONF = core::get()->factory()->get_config('cookie',array('path'=>'/','domain'=>'.'));
    core::get()->debug()->log("COOKIE[{$cookie}]", $value, FALSE, 7);
    if($time!==0){
        $time= time()+$time;
    }
    if($cookieCONF['domain']=='localhost'){
        $cookieCONF['domain']=null;
    }
    if(!is_array($value)){
        setcookie($cookie, $value, $time, $cookieCONF['path'], $cookieCONF['domain']);
    }else{
        foreach($value as $val=>$ue){
            core::get()->debug()->log("{$cookie}[{$val}]", $ue, FALSE, 8);
            if(setcookie("{$cookie}[{$val}]", $ue, $time, $cookieCONF['path'], $cookieCONF['domain'])){
                core::get()->debug()->log('COOKIE RESULT',"SET {$cookie}[{$val}]={$ue}", FALSE, 8);
            }else{
                core::get()->debug()->log('COOKIE RESULT',"NOPE {$cookie}[{$val}]={$ue}", FALSE, 8);
            }
        }
    }
}

Cookies可以使用非数字键。

将代码更改为:

 setcookie("user[k]", "295f<SNIP>98f2", $time);

调试:尝试一个带有硬编码html页面和cookie的非常简单的php脚本?您正在使用的代码可能存在其他问题。这不会花费很长时间,并且会确定cookie是否是问题所在?
setcookie("user[k]", "295f<SNIP>98f2", $time);
 setcookie("user[k]", "295f<SNIP>98f2", $time);
setcookie("user[k]", "295f<SNIP>98f2", $time, "/~username/folder/");
public function set_cookie($cookie,$value,$time=0){
    $cookieCONF = core::get()->factory()->get_config('cookie',array('path'=>'/','domain'=>'.'));
    core::get()->debug()->log("COOKIE[{$cookie}]", $value, FALSE, 7);
    if($time!==0){
        $time= time()+$time;
    }
    if($cookieCONF['domain']=='localhost'){
        $cookieCONF['domain']=null;
    }
    if(!is_array($value)){
        setcookie($cookie, $value, $time, $cookieCONF['path'], $cookieCONF['domain']);
    }else{
        foreach($value as $val=>$ue){
            core::get()->debug()->log("{$cookie}[{$val}]", $ue, FALSE, 8);
            if(setcookie("{$cookie}[{$val}]", $ue, $time, $cookieCONF['path'], $cookieCONF['domain'])){
                core::get()->debug()->log('COOKIE RESULT',"SET {$cookie}[{$val}]={$ue}", FALSE, 8);
            }else{
                core::get()->debug()->log('COOKIE RESULT',"NOPE {$cookie}[{$val}]={$ue}", FALSE, 8);
            }
        }
    }
}