设置cookie代码页面如下:
$msrs=$conn->execute("select b.GroupName,b.AuthItem,b.AuthArea from SYS_admin a left outer join SYS_AuthGroup b on a.GroupID=b.GroupID where a.User_ID='".$_SESSION['LOGIN_USER_ID']."'");
if(!$msrs->eof)
{
setcookie('JDKH[AuthItem]',$msrs->Fields['AuthItem']->Value,time()+36000);/* 有效期 10个小时 */
setcookie('JDKH[AuthArea]',",".$msrs->Fields['AuthArea']->Value.",",time()+36000);/* 有效期 10个小时 */
setcookie('JDKH[AuthType]',"HRadmin",time()+36000);/* 有效期 10个小时 */
$LoginAble2="Yes";
}
$msrs->close();print_r($_COOKIE);输出的JDKH[ ]为空 但在浏览器中查看cookie却是有值的。困扰很久了,希望各位大神帮看一下,感激不尽!
$msrs=$conn->execute("select b.GroupName,b.AuthItem,b.AuthArea from SYS_admin a left outer join SYS_AuthGroup b on a.GroupID=b.GroupID where a.User_ID='".$_SESSION['LOGIN_USER_ID']."'");
if(!$msrs->eof)
{
setcookie('JDKH[AuthItem]',$msrs->Fields['AuthItem']->Value,time()+36000);/* 有效期 10个小时 */
setcookie('JDKH[AuthArea]',",".$msrs->Fields['AuthArea']->Value.",",time()+36000);/* 有效期 10个小时 */
setcookie('JDKH[AuthType]',"HRadmin",time()+36000);/* 有效期 10个小时 */
$LoginAble2="Yes";
}
$msrs->close();print_r($_COOKIE);输出的JDKH[ ]为空 但在浏览器中查看cookie却是有值的。困扰很久了,希望各位大神帮看一下,感激不尽!
{
setcookie('JDKH[AuthItem]',$msrs->Fields['AuthItem']->Value,time()+36000);/* 有效期 10个小时 */
setcookie('JDKH[AuthArea]',",".$msrs->Fields['AuthArea']->Value.",",time()+36000);/* 有效期 10个小时 */
setcookie('JDKH[AuthType]',"HRadmin",time()+36000);/* 有效期 10个小时 */
$LoginAble2="Yes";
}
首先你要确定条件能进入去setcookie
然后,在print_r($_COOKIE); 看看有什么。你是否在同一域名下设置呢?
要测试是否cookie有问题,可以使用一个简单的例子
<?php
if(isset($_COOKIE['abc'])){
echo $_COOKIE['abc'];
echo 'read cookie';
}else{
$data = time();
setcookie('abc',$data,time()+3600);
echo $data;
echo 'set cookie';
}
?>
调试结果是这样的:
JDKH[AuthArea] %2C%C8%AB%CC%E5%B2%BF%C3%C5%2C 192.168.128.17 /general/jb_works/jidukaohe 2017-02-22T19:01:31.455Z 44
JDKH[AuthType] HRadmin 192.168.128.17 /general/jb_works/jidukaohe 2017-02-22T19:01:31.455Z 21
$msrs=$conn->execute("select b.GroupName,b.AuthItem,b.AuthArea from SYS_admin a left outer join SYS_AuthGroup b on a.GroupID=b.GroupID where a.User_ID='".$_SESSION['LOGIN_USER_ID']."'");
if(!$msrs->eof)
{
echo $msrs->Fields['AuthItem']->Value;
//setcookie('JDKH[AuthItem]',$msrs->Fields['AuthItem']->Value,time()+36000);/* 有效期 10个小时 */
setcookie('PIC_AuthItem',$msrs->Fields['AuthItem']->Value,time()+36000);
setcookie('JDKH[AuthArea]',",".$msrs->Fields['AuthArea']->Value.",",time()+36000);/* 有效期 10个小时 */
setcookie('JDKH[AuthType]',"HRadmin",time()+36000);/* 有效期 10个小时 */
$LoginAble2="Yes";
}
print_r($_COOKIE); 是在另一个页面输出的,所有页面都是同一个服务器上,没有跨域的。测试过cookie是没有问题的,只有这个页面设置的cookie无法输出
Array ( [JDKH] => [SID_1304] => 72a546d0 [UI_COOKIE] => 0 [SID_1] => b5ea574 [SID_7904] => 65ad2d80 [flow_view] => 0 [sdmenu_my_menu] => 1000 [CNZZDATA155540] => cnzz_eid=1224864015-1486540938-http%3A%2F%2F192.168.128.17%3A2046%2F&ntime=1486540938 [PHPSESSID] => hqdbk3lllc8ek63m6rgaf14v15 [OA_USER_ID] => admin )
那么 使用 cookie 和 设置 cookie 的程序不是在同一目录下的话,是接收不到 cookie 的
setcookie('JDKH[AuthArea]',",".$msrs->Fields['AuthArea']->Value.",",time()+36000,'/');/* 有效期 10个小时 */
setcookie('JDKH[AuthType]',"HRadmin",time()+36000,'/');/* 有效期 10个小时 */
$LoginAble2="Yes";
}
也不行呢
print_r($_COOKIE);
结果如下:
Array ( [SID_1304] => 72a546d0 [UI_COOKIE] => 0 [SID_1] => d42bed9f [SID_7904] => 65ad2d80 [flow_view] => 0 [sdmenu_my_menu] => 1000 [CNZZDATA155540] => cnzz_eid=1224864015-1486540938-http%3A%2F%2F192.168.128.17%3A2046%2F&ntime=1486540938 [PHPSESSID] => a6ok78u908c5sr8rro5oafrfq7 [OA_USER_ID] => admin [JDKH] => )