如何获取饼干价值

2022-08-30 17:08:59

创建饼干

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”?????


答案 1

这是用于创建 Cookie 的 PHP 语法:

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

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

$_COOKIE['YOUR COOKIE NAME'];

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

文档: setcookie()$_COOKIE[]


答案 2

函数session_name将为您提供哈希值,该哈希值通常是您的会话标识符。似乎您想将用户名存储在会话中,不是吗?在这种情况下,您应该使用 $_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";       
     }    
 }

推荐