1

ログイン登録機能を備えた Web サイトで作業しています。参照とフォーラムのヘルプを使用してログイン登録部分を実装しましたが、現在、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 に答える