【问题标题】:PHP Cookie is not set/workingPHP Cookie 未设置/工作
【发布时间】:2013-11-06 15:03:20
【问题描述】:

我尝试了很多,但没有发现错误是什么。请详细告诉我/示例这将如何为我工作。我正在尝试为登录表单设置 cookie。这是我已经实现的基本步骤。

1) 用于创建登录表单的 HTML 和 CSS 代码。 2) 执行 jQuery 来检查登录表单是否正确填写。在检查后,我使用 jQuery 中的 $.post 方法将表单发布到 php 文件,这将处理登录。 3) 将连接到数据库的 PHP 文件。如果用户名和密码正确,那么这个 PHP 应该创建一个 cookie

这是 jQuery 的代码:

$.post(url, {php_userName:userName, php_password:password},
            function(data){
                var xyz = (data);

                if (xyz == 'error'){
                    $("#submitMessage").removeClass("JQ_valid").text("");
                    $("#submitMessage").addClass("JQ_Error").text("User name or password is wrong.");
                }else{
                    window.location.replace("members.php?userName="+data);
                }
            })

这里是 PHP 代码。 (handle_login.php)

    if ($DB_UserName == $userName && $DB_password == $md5_pass){
 setcookie($userName, $userType, $expire); 
 echo $userName; 
    }
    else{ 
      echo "error" ;
    }

这是 member.php 代码:

     $userName = $_REQUEST['userName'] ;
     if(isset($_COOKIE[$userName])){
         //do this
     }else{
          //do this
      }

【问题讨论】:

  • $userType 和 $expire 的值是什么

标签: javascript php jquery cookies


【解决方案1】:

设置cookie的格式为

setcookie(name, value, expire, path, domain);

所以尝试使用,

setcookie("cookiename",$userName,0,'/');

这将创建一个名称为给定的 cookie,而不是根目录 (/) 中值为 $userName 的 'cookiename'。

在 member.php 中,使用

if(isset($_COOKIE['cookiename'])){
...
}

【讨论】:

  • 我很感谢你。基本错误是路径。我的 php 文件(其中包含 setcookie 的代码)位于另一条路径上。我只是将路径'/'作为根。并设置所有cookie。谢谢你的解释,Jenz。
猜你喜欢
  • 1970-01-01
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多