【问题标题】:cookies problem in PHP and AJAXPHP 和 AJAX 中的 cookie 问题
【发布时间】:2011-09-15 06:38:16
【问题描述】:

我的脚本遇到了一些问题,我使用 PHP 和 jquery 创建登录系统。

首先我的 PHP 页面包含登录表单。当用户单击提交时,我使用 jquery 将数据发送到服务器

$.post('server_login.php', {username:username.val(), password:password.val()}, function(data){
    alert(data);
}); 

在 server_login.php 我有做登录用户的功能。

if($_POST['username']=='username' && $_POST['password']=='1234'){
    $expire = time() + 60*60*24*30; //1 month expired.
    setcookie("user_id", $_POST['username'], $expire);
    echo true;
}

我的登录页面上的 jquery 警报“1”。

问题是当我刷新我的网站并检索 cookie 时,它​​没有显示给我。

print_r($_COOKIE);

有什么问题吗?

【问题讨论】:

标签: php jquery ajax cookies


【解决方案1】:

如果您正在调用的脚本位于服务器上的另一个文件夹中(或通过 url 重写它看起来好像它在另一个路径下),请确保设置 cookie 的路径参数。

默认情况下,setcookie() 仅为当前路径设置 cookie。

如果您的页面是 www.domain.com,并且您对 www.domain.com/auth/login.php 进行 ajax 调用,则 cookie 将设置为 /auth,并且在 /auth 之外不可用。

所以试着改成这样:

setcookie("user_id", $_POST['username'], $expire, '/');

【讨论】:

    【解决方案2】:

    我在我的脚本中尝试以下代码。 如果您获得 cookie 值,请尝试此代码 比你的代码有问题,但如果这个代码也 比检查您的浏览器 cookie 选项是否启用更有效。 如果 cookie 被浏览器禁用,那么您也无法获得任何 cookie 价值。

    如需启用浏览器 cookie,请点击以下链接 http://www.blogpatrol.com/enable-cookies.php

    测试代码1:

    $expire = time() + 60*60*24*30; //1 month expired.
    
    setcookie("TestCookie", "shashank patel here", $expire);
    
    print_r($_COOKIE);
    

    测试代码2:

    还请使用您的脚本检查此代码,此代码告诉您 您的浏览器 cookie 是否启用。

    error_reporting (E_ALL ^ E_WARNING ^ E_NOTICE);
    
    // Check if cookie has been set or not
    
    if ($_GET['set'] != 'yes')
    {
      // Set cookie
      setcookie ('test', 'test', time() + 60);
    
      // Reload page
      header ("Location: test.php?set=yes");
    } 
    else
    {
      // Check if cookie exists
      if (!empty($_COOKIE['test']))
      {
         echo "Cookies are enabled on your browser";
      } 
      else 
      {
        echo "Cookies are NOT enabled on your browser";
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      相关资源
      最近更新 更多