在Jquery调用的PHP文件中设置一个cookie

时间:2011-05-31 11:06:26

标签: php cookies jquery

我正在尝试制作用户验证页面。我使用Jquery $ .ajax()调用PHP文件来验证用户数据并存储一些cookie数据,但PHP文件不保存cookie数据。我更喜欢用这种方式制作而不是通过Jquery $ .cookie保存cookie,因为我不希望cookie出现在javascript代码中。这是我的代码:

validation.js:

$.ajax({
        type: 'POST',
        url: 'json_user_verify.php',
        data: $('#UserForm').serialize(),
        dataType: "json",
        cache: false,
        success: function(data) {   
            if(data.correct)
            {
                location.href='panel.php';
            }
            else
            {
                $('#PMessage').css('color','red');
                $('#PMessage').html(data.error);                        
            }
        },
        error: function(xhr,ajaxOptions,thrownError) {
            alert("Error!!!");
        }
    });

这是存储cookie值的PHP片段代码(我省略了用户验证,它运行良好)。

user_cookie.php:

setcookie(
    "UserID",
    $userID,
    time()+(60*60*24*30),
    dirname($HTTP_SERVER_VARS['REQUEST_URI']));

$result["correct"]=true;

echo(json_encode($result));

这是我第一次尝试通过jQuery进行用户验证。所有用户验证过程都运行良好(数据库访问,验证,表单提交等)。我已经尝试了没有jQuery的PHP代码,并且cookie也正确保存。但是当我通过$ .Ajax()拨打电话时,cookie不会被保存(其余的过程已经在运行)。

感谢您的帮助

0 个答案:

没有答案