未存储php会话cookie
我在header.php文件中有这个php脚本,将HTTP头发送到python脚本,并将GUID设置为会话cookie:未存储php会话cookie,php,session,cookies,session-cookies,Php,Session,Cookies,Session Cookies,我在header.php文件中有这个php脚本,将HTTP头发送到python脚本,并将GUID设置为会话cookie: <?php ob_start(); function guid(){ if (function_exists('com_create_guid')){ return com_create_guid(); }else{ mt_srand((double)microtime()*10000);//optional f
<?php
ob_start();
function guid(){
if (function_exists('com_create_guid')){
return com_create_guid();
}else{
mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
$charid = strtoupper(md5(uniqid(rand(), true)));
$hyphen = chr(45);// "-"
$uuid = chr(123)// "{"
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// "}"
return $uuid;
}
}
$UA = $_SERVER['HTTP_USER_AGENT'];
$REF = $_SERVER['HTTP_REFERER'];
$IP = $_SERVER['REMOTE_ADDR'];
$GUID = guid();
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
if (!isset($_COOKIE["name"]))
setcookie('name',$GUID);
//echo $UA;
//echo $REF;
//echo $IP;
//echo $GUID;
echo exec("python /var/www/html/oscommerce-2.3.3.4/header_sender.py -u '$UA' -r '$REF' -i '$IP' -c '$GUID' -p '$actual_link' 2>&1");
ob_end_flush();
?>
似乎您没有声明会话\u start()
编辑:
因为您使用的不是$\u会话[“”]
,而是$\u COOKIE[“”]
似乎在time()+x秒之前,您没有定义cookie在浏览器上的存储时间
setcookie('name',$value,time()+..);
当您想使用session,所以首先需要在session\u start()
中启动时,它应该在start php标记之后的页面的第一行中使用,因为如果您在between或end或任何其他位置使用,则会出现错误标题,此错误发生的原因是在您使用session\u start()时
函数位于代码之间,您在代码之间留有任何空格,因此发生了此错误这不是问题所在,但我对PHP cookie的搜索未设置导致我在这里回答任何其他出现的问题
还要注意如何设置到期日(如果是)。我最初是这样设置的:
setcookie(self::$tokenCookie, $response['refreshToken'], 86400 * 365, "/");
目的是将其设置为未来1年(86400*365)。然而,这使它从新纪元开始(1970年)起1年。要从现在起获得1年,请使用以下命令:
setcookie(self::$tokenCookie, $response['refreshToken'], time() + (86400 * 365), "/");
这是一个无聊的时刻,但它让我绊倒了,并造成了一些挫折,所以希望这能帮助其他人避免这种挫折。嗨,这有关系吗?我没有使用php会话UTIL,而是手动设置HTTP cookie。为什么我需要调用session\u start()
?哦,你说得对..顺便说一句,我认为存在一个简单的cookie,而不是session,session的会话ID存储为cookie。根据我的说法,不设置时间意味着会话cookie-只要浏览器未关闭,它就应该存在。我来看看如何使用php会话函数。让我更新我的答案。我不应该删除上一个(而只是顺其自然),它会使我们的对话与会话无关。除息的