2012-05-24 1 views
1

Я работаю на веб-сайте с регистрационной функцией входа в систему. Я внедрил регистрационную страницу для входа со ссылкой и помощью форума, но теперь я столкнулся с проблемой с сеансом PHP. Это моя форма Аякса представить:Обработка сеанса PHP при использовании jquery ajax form submit

$.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/,but если я обновить страницу в имя пользователя исчезает, но оно все еще присутствует i n session.I может видеть это, если я делаю print_r ($ _ SESSION). Имя пользователя задано с помощью jQuery ajax.

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

который я думаю, что это не сохранялось, но до сих пор в session.I я новичок в JQuery AJAX и застрял на this.Any конструктивные замечания будут полезны. Thanks

ответ

1

Это может показаться глупым, но вы уверены, что вы показываете имя пользователя с php на загрузке страницы или это просто, когда есть запрос на вход в систему ajax?

Насколько я могу судить, ваш код отображает только имя пользователя после вашего вызова AJAX, но при загрузке страницы без аякса нет ничего подобного <?php echo $_SESSION['username']; ?>.

Надеюсь, что мой ответ достаточно ясен, но просто для того, чтобы сделать вывод: убедитесь, что вы эхо-имя пользователя, когда кто-то идет прямо на ваш сайт, а не только на действие входа.

+0

Да, но как его преодолеть? Я могу сделать это с помощью PHP, но тогда использование jquery/ajax для отправки не будет иметь большого смысла? В настоящее время у меня нет нескольких страниц, но да, это нужно протестировать, если пользователь перейдет непосредственно на сайт. Я добавил ссылку выше на сайт с похожими материалами, как это делается? Вы можете пролить свет на него? указатели или примеры. – KillABug

+0

Используете ли вы php-файлы для визуализации HTML? – Ignas

+0

Да, я не использую никаких фреймворков, а я не знаю. : P Это проблема ?? – KillABug