1

問題1)登録/ログイン領域を設定し、すべて(空のフィールドを含む)を検証し、ユーザー名やパスワードが正しくない場合にエラーメッセージを表示すると壁にぶつかりました。現時点では、フィールドが空白のままの場合に表示されるエラーメッセージが表示されることがありますが、送信すると、ページは正しいまたは間違ったユーザー詳細を含む「プライベートページ」にリダイレクトされます。これは私の現在のコードです:

問題1(解決済み):

コントローラ:

//This method will have the credentials validation
    public function credentials_validation() {
        $data['error'] ="Invalid Username or Password";
        $this->load->library('form_validation');
        $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean|callback_username_check');
        $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_password_check');

          if($this->form_validation->run() == FALSE)
           {
             //Field validation failed.  User redirected to login page
             $this->index();

             }else{
                 $this->load->model('register_model');

                if($query = $this->register_model->validate()) {
                $this->load->model('news_model');

                $data = array('news' => $this->news_model->getArticle());
                $data['title'] = 'Admin | Home';
                $data['heading'] = 'News Articles';
                $data['main_content'] = 'admin/news';
                $this->load->view('include/template', $data);

                }else {
                $this->load->view('login',$data);
                }    

            }
    }

問題2)ニュース記事ページは1つの記事のみをロードし、URLはクラス名を表示します。

ニュースコントローラー:

class News extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('admin/news_model');
    }

    public function index() {
        $data = array('news' => $this->news_model->getArticle());
        $data['title'] = 'Admin | News Home';
        $data['heading'] = 'News Articles';
        $this->load->view('admin/news', $data); 
}

}

ニュースモデルは、データベーステーブルをプルし、すべてを選択してIDで並べ替えると、配列が生成されます。なぜこれが1つの結果しか表示しないのか誰かが考えていますか?foreachメソッドと関係があると思いますか?

PS、CIまたはphpエラーログからエラーメッセージは表示されません!

4

1 に答える 1

5

最良の方法は、エラーメッセージを配列に格納することです。

$data['error'] ="Invalid Login";

たとえば、コントローラーで

if($query = $this->register_model->check_membership()) {
    $data['main_content'] = 'signup_successful';
    $this->load->view('include/template', $data);

}else {
    $data["error"]="Invalid User Id and Password combination";
    $this->load->view('signup',$data);
}

このcheck_membership関数は、ログイン ID とパスワードの組み合わせが正しいかどうかをチェックする必要があります。

そして、signupビューページで、次のようなものを一番上に置きます

if (isset($error)){
    echo "<div class='error'>$error</div>";
}
于 2012-08-31T12:47:53.000 に答える