1

我正在一个具有登录注册功能的网站上工作。我已经通过参考和论坛帮助实现了登录注册部分,但现在我遇到了 PHP 会话的问题。这是我的 ajax 表单提交:

   $.ajax({
                    type: "POST",
                    url: "userLogin.php",
                    data: "eid="+eid+"&pwd="+pwd+"&rememberme="+remember,
                    dataType: "html",
                    success: function(msg){
                        if($.trim(msg)!="error")
                        {
                            $("#user_status", window.parent.document).html("Welcome "+msg+"&nbsp;&nbsp;|&nbsp;&nbsp;<a href='forum/logout.php'>Logout</a>");

                            if(window.parent.document.getElementById('post_user_name'))
                                $("#post_user_name", window.parent.document).html("<strong style='color:#333333;'>"+msg+"</strong>");

                            parent.$.fancybox.close();
                        }
                        else{
                            $('#error_common').html("Invalid ID or password.Please try again");
                            $('#error_common').show();
                            return false;
                        }
                    }
                });

这是PHP代码:

             if(isset($_POST['eid']) && isset($_POST['pwd']))
          {     
                $userObj = new Model_Users();
                $username= return_fetched_value($_POST['eid']);
                $password= md5(return_fetched_value($_POST['pwd']));
                $getUserDetails = $userObj->getUserValueByUserNameAndPassword($username,$password);
                /*print_r($getUserDetails);
                exit;*/

                if(count($getUserDetails)>0)
                {   

                    $_SESSION['username'] = $getUserDetails['uname'];
                    $displayUser=$getUserDetails['uname'];  
                    echo $displayUser;

                }
                else
                {
                    //echo "entered here";  
                    echo "error";
                }

          }
          else
          {
            $errorMessage = "You have entered invald username password" ;

          }

一切正常,用户登录并在登录页面上获取用户名,如这里http://www.proptiger.com/,但如果我刷新页面,用户名会消失,但它仍然存在于会话中。我可以如果我做print_r($_SESSION)看看它。用户名已使用 jquery ajax 部分设置。

        $("#user_status", window.parent.document).html("Welcome "+msg+"&nbsp;&nbsp;|&nbsp;&nbsp;<a href='forum/logout.php'>Logout</a>");

我认为这并没有持续存在,但仍然存在于会话中。我是 jquery ajax 的新手并坚持这一点。任何建设性的意见都会有所帮助。谢谢

4

1 回答 1

1

这可能听起来很傻,但是您确定在页面加载时使用 php 显示用户名还是只是在有登录 ajax 调用时?

据我所知,您的代码仅在您的 AJAX 调用之后显示用户名,但是<?php echo $_SESSION['username']; ?>当您在没有 ajax 的情况下加载页面时没有任何类似的东西。

我希望我的回答足够清楚,但只是总结一下:当有人直接进入您的网站时,请确保您回显用户名,而不仅仅是登录操作。

于 2012-05-24T11:39:55.247 回答