【问题标题】:Dynamic cookie not working codeigniter动态 cookie 不起作用
【发布时间】:2015-07-23 14:07:37
【问题描述】:

我在 codeigniter 中使用 facebook 登录。我遵循了这个(http://www.idiotminds.com/login-with-facebook-in-codeigniter/)教程。 Facebook 登录按预期工作,但未设置 cookie。如果我用静态值设置静态 cookie,那么它可以工作,但如果我用使用我的 facebook 登录的用户的电子邮件值设置 cookie,在这种情况下,我的 cookie 不起作用。

我的代码如下所示:

控制器

//Value being passed from controller: 
$data['user_email'] = $user_profile['email'];

鉴于:

if(!empty($user_email))
{
    $cookie_value = $user_email;
    setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); 
    echo $_COOKIE["userlogin"]."cookie being set<br>";
}

$cookie 没有打印任何内容,这意味着我的 cookie 无法正常工作。

【问题讨论】:

  • 你确定$data['user_email_log'] 然后使用$user_email 是正确的...?
  • 这只是错误,但鉴于我实际上使用的是 $user_email_log
  • 并且您已经验证如果它包含预期值,在您尝试将其放入 cookie 时?
  • 是的,物有所值。我已经通过打印验证了这一点。

标签: php facebook codeigniter cookies


【解决方案1】:

你应该使用:

$this->load->helper('cookie');
$this->input->set_cookie();

【讨论】:

  • 我也试过这个,并且在 autload 中调用了助手。
【解决方案2】:

您的代码有问题。在您的 controller 文件中,您正在传递这样的值

//Value being passed from controller: 
$data['user_email_log'] = $user_profile['email'];

这意味着在您看来,您已经使用 $user_email_log 变量从控制器中检索值。

您可以像这样使用 codeigniter cookie 设置功能设置 cookie

 $cookie= array(
      'name'   => 'userlogin',
      'value'  => $user_email_log,
       'expire' => '86500',
  );
  $this->input->set_cookie($cookie);

有关 cookie 的更多信息,您可以查看Link

【讨论】:

  • 控制器中的代码有什么问题?我已经尝试过 codeigniter 设置 cookie 的方法,但这对我也不起作用。但是当我试图用一些默认值设置cookie时,它会起作用。
  • 我只是以为您从控制器传递了错误的参数以查看为什么我告诉您的代码错误但现在您评论说That is just mistake but in view I am actually using $user_email_log
  • 好的,我可以通过什么其他帮助或方法来调试此问题?
猜你喜欢
  • 2023-03-26
  • 2013-01-10
  • 2015-04-05
  • 2015-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多