2012-05-02 3 views
0

У меня есть новая домашняя страница с регистрацией и регистрацией с пользователем unlogin. homepage.phpajax login в yii framework

<script type="text/javascript" > 
      $(document).ready(function() 
      { 
       $("#btnLogin").click(function() 
       {      
        var username= $("#usernamelogin").val(); 
        var password=$("#passwordlogin").val(); 
        var remember = $("#rememberlogin").is(':checked'); 
        var dataString = 'usernamelogin='+ username + '&passwordlogin=' + password + '&rememberlogin=' + remember; 
        $.ajax 
        ({ 
         type: "POST", 
         url: "homepage", 
         data: dataString, 
         cache: false, 
         success: function(html) 
         { 
          alert(html); 
         } 

        }); 
       }); 
      }); 


     </script> 
<form action="" method="post" name="frmLogin" class="Login"> 
      <table width="960px" align="center"> 
       <tr> 
        <td rowspan="3" width="404"><label id="lbbanner"><b>UIT SOCIAL NETWORK</b></label></td> 
        <td width="216"><label>Username:</label></td> 
        <td width="324">Password:</td> 
       </tr> 
       <tr> 
        <td><input type="text" witdth="200px" id ="usernamelogin" name="txtUsernameLogin" /></td> 
        <td><input type="password" width="200px" id="passwordlogin" name="txtPasswordLogin" /></td> 
       </tr> 
       <tr> 
        <td></td> 
        <td><input type="checkbox" id="rememberlogin" name="checkRemember" />&nbsp;Remember me! 
         <input type="button" value="Log in" id="btnLogin" name="Login"/></td> 
        <td colspan="2" align="right"></td> 

       </tr> 
       <tr> 

       </tr> 
      </table> 
     </form> 

В SiteController У меня есть actionHomePage()

public function actionHomePage() { 
     $model = new LoginForm();  
     $model->username = $_POST['usernamelogin']; 
     $model->password = $_POST['passwordlogin']; 
     $model->rememberMe = $_POST['rememberlogin']; 
     //echo $model->errors; 
     print_rcount(($model->getErrors())); 
     //echo $model->username . "&&" . $model->password . "$$" .$model->rememberMe; 
     // validate user input and redirect to the previous page if valid   
     if ($model->validate() && $model->login()) { 
      $this->loginStatus = true; 
      //$this->redirect(Yii::app()->user->returnUrl); 
      echo "SUCCESS"; 
     } else { 

      echo "Error"; 
     } 
    } 

Когда я заполняю имя пользователя и пароль с правильной информацией, но он вернется "ERROR" $ модели-> Validate() неверно, но у меня есть правильная информация. Я не знаю, что я ошибаюсь в этой части.

+1

Какая ошибка вы видите? добавьте 'var_dump ($ model-> getErrors());' after 'echo" Error ";', чтобы увидеть ошибку в вашем поле оповещения. Поэтому дайте мне знать ошибку, которую вы видите. –

+0

спасибо за ваш комментарий Я нашел ошибку – chanhle

+1

ok, так что это было? Мне любопытно узнать. –

ответ

1

Ваш вход имена переменных должны соответствовать переменные POST вы запрашиваете так

<td><input type="text" witdth="200px" id ="usernamelogin" name="txtUsernameLogin" /></td> 
<td><input type="password" width="200px" id="passwordlogin" name="txtPasswordLogin" /></td> 

должно быть так:

<td><input type="text" witdth="200px" id ="usernamelogin" name="usernameLogin" /></td> 
<td><input type="password" width="200px" id="passwordlogin" name="passwordLogin" /></td> 

же для rememberlogin

+0

, но когда я возвращаю echo $ model-> имя пользователя. Msgstr "&&". $ model-> пароль. «$$». $ model-> запомнитьMe; Он возвращает истину, что у меня есть: -? – chanhle

+0

Я отредактировал, но он не работает – chanhle

+0

@chanhle Pls проверить модель логина и правила() в нем. – Gopesh

-1

, потому что в actionHomePage(): $ model-> запомнитьMe = true или false; $ _post возвращает строку. Вы пытаетесь:

($_POST['rememberlogin'] == "false") ? $model->rememberMe = false : $model->rememberMe = true ;