2012-02-16 17 views
0

何らかの理由で、フォームを送信するときに、Message:json_encode()がパラメータ2が長くなることが予想されます。コントローラのこの行に文字列があり、その理由がわかりません。問題が何であるか誰にでも見えますか?Jsonエンコーディングの問題

コントローラ

function forgot_password_submit() 
{ 
    $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean'); 

    if (!$this->form_validation->run()) 
    { 
     $this->kow_auth->output('There was a problem submitting the form! Please refresh the window and try again!', FALSE); 
     return; 
    } 

    $user_data = $this->users->get_user_by_username($this->input->post('username')); 
    if ($user_data === NULL) 
    { 
     $this->kow_auth->output('User does not exist in the database!', FALSE); 
     return; 
    } 

    $already_sent_password = (isset($user_data->new_password_key) && isset($user_data->new_password_requested)); 
    if ($already_sent_password) 
    { 
     $this->kow_auth->output('Check your email for your temporary password!'); 
     return; 
    } 

    if (!strtotime($user_data->new_password_requested) <= (time() - 172800)) 
    { 
     $this->kow_auth->output('You have to wait 2 days before a new temp password can be emailed!', FALSE); 
    } 
    else 
    { 
     if ($this->kow_auth->forgot_password($this->input->post('username'))) 
     { 
      $this->kow_auth->send_email('forgot_password', 'KOW Manager Forgot Password Email', $user_data); 
      $this->kow_auth->output('A temporary password has been emailed to you!'); 
     } 
     else 
     { 
      $this->kow_auth->output('A temporary password could not be created for you!', FALSE); 
     } 
    } 
} 

kow_authライブラリ

/** 
* Generate output message 
* 
* @param string 
* @return object 
*/ 
function output($message, $success = TRUE) 
{ 
    $status = $success ? array('succes' => 'yes') : array('error' => 'yes'); 
    echo json_encode($status, $message); 
} 
+0

本当にjsonをビューにエコーする必要があります。これはMVCパターンに反します。 –

答えて

2

まあはい、json_encodeの2番目のパラメータはオプションのビットマスクではなく、メッセージをすることになっています。文字列ではなく、文字列を一度に1つだけエンコードすることができます。たぶん、あなたはjson_encode(array($status, $message))のような何かをしたいですか?

+0

しかし、メッセージは表示されません。それは未定義を示します。 –

+0

何が未定義と表示されますか? – deceze

+0

メッセージを置き換える場所。 –

関連する問題