【问题标题】:How to get cookie value如何获取 cookie 值
【发布时间】:2015-08-14 17:41:15
【问题描述】:

创建 cookie

session_start();
$params = session_get_cookie_params();    
setcookie(session_name('USERNAME'),'HAMZA',1,
      isset($params['path']),
      isset($params['domain']),
      isset($params['secure']),
      isset($params['httponly']));

session_regenerate_id(true);
echo "COOKIE IS CREATED SUCCESSFULLY !";

现在正在获取 cookie 值

session_start();
$NAME=$_COOKIE['USERNAME'];
echo $_COOKIE["USERNAME"];

if(isset($NAME))
{
      if($NAME=='USERNAME')
      {
          echo "success";
      }
      else
     {
          echo "error";       
     }    
 }

请帮帮我!

结果

他们为什么创建自动随机值,例如:u8omuum6c9pkngrg4843b3q9m3)。 但我想获得我的原始 COOKIE 值,即“HAMZA”?????

【问题讨论】:

  • 你听说过$_COOKIE superglobe 变量
  • 使用print_r($_COOKIE);var_dump($_COOKIE);
  • 我现在但是像这样返回答案 echo $NAME=$_COOKIE['HAMZA']; 631mfeuu1k50v8s7327dpm5gd4错误
  • setcookie(session_name(..... 行没有给你一个致命的错误,这很紧张。请检查
  • isset($paenter code hererams['httponly']) 这里你会得到fatle错误。

标签: php cookies


【解决方案1】:

这是创建 cookie 的 PHP 语法:

setcookie($name, $value, $expires, $path, $domain, $secure, $httponly);

第一个变量是您的 cookie 名称,您可以使用它来读取值,如下所示:

$_COOKIE['YOUR COOKIE NAME'];

注意:与其他标头一样,cookie 必须在脚本的任何输出之前发送。这要求您在任何输出之前调用此函数,包括<html> 和任何空格。
另请注意,cookie 名称中的点和空格 (./ ) 将替换为下划线 (_)。

文档: setcookie(), $_COOKIE[]

【讨论】:

  • 我尝试但给出这样的答案:cb3rsosrc0cetg42od84ol9jd6error
  • 你能告诉你预期的结果吗,把它放在你的代码中。谢谢
  • 现在查看我的帖子!??
【解决方案2】:

函数 session_name 将为您提供哈希,这实际上是您的会话标识符。 似乎您想将 USERNAME 存储在会话中,不是吗?在这种情况下,您应该使用 $_SESSION 数组。

代码示例:

setcookie($_SESSION['USERNAME'],'HAMZA',1,
      isset($params['path']),
      isset($params['domain']),
      isset($params['secure']),
      isset($params['httponly']));

你可以像这样得到它:

$myCookie = $_COOKIE[$_SESSION['USERNAME']];

但是从您的第二个代码中,您想要得到什么还不是很清楚。 如果你想询问 $_COOKIE['USERNAME'] 并得到 'HAMZA' 那么你应该这样设置:

setcookie('USERNAME','HAMZA',1,
      isset($params['path']),
      isset($params['domain']),
      isset($params['secure']),
      isset($params['httponly']));

当你检索它时,$NAME=='USERNAME' 没有意义,因为它就像 $NAME=='HAMZA':

$NAME=$_COOKIE['USERNAME'];
echo $_COOKIE['USERNAME'];

if(isset($NAME))
{
      if($NAME=='HAMZA')
      {
          echo "success";
      }
      else
     {
          echo "error";       
     }    
 }

【讨论】:

    【解决方案3】:

    试试这个...

    setcookie($cookie_name, $cookie_value, 1800, "/");

    更改过期时间为:

    setcookie($cookie_name, $cookie_value, time()+ 1800, "/");

    【讨论】:

      【解决方案4】:

      试试这个...

      <?
         $yummy = json_decode(json_encode($_COOKIE));
      
         if(isset($yummy->yourvar)) echo $yummy->yourvar;
      ?>
      

      为什么使用encode和decode?,它用于将类型Array转换为JSON 原来类型 $_COOKIE 是 Array

      【讨论】:

      • 请在您的答案中添加一些解释,以便其他人可以从中学习。为什么要对 cookie 数组进行编码和解码?
      • 呵呵呵呵谢谢。为什么使用encode和decode?,它用于将类型Array转换为JSON,原来类型$_COOKIE是Array
      • 为什么这里需要 JSON?为什么不直接访问那个 cookie 数组呢?
      • 其实根据程序员的风格,有喜欢数组的,也有喜欢json的。我喜欢 JSON :)
      • 如果你喜欢 JSON,为什么在给定的例子中使用 stdClass?
      猜你喜欢
      • 2015-02-23
      • 2017-12-02
      • 2020-01-16
      • 2014-11-28
      • 1970-01-01
      • 2022-01-10
      • 2017-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多