2016-09-30 2 views
0

Anfänger Frage Entschuldigung: Ich habe Vorlage (nur von Grund auf neu zu erstellen, so ist es eine einfache Vorlage von HTML CSS), Header, Navbar, Inhalt, Seitenleiste, Fußzeile. aber meine Login-Box befindet sich in der Seitenleiste und meine View-Dateien 'footer.php' bestehen aus Sidebar und Footer. (also meine loginbox ist in footer.php) Mein Controller, jede Methode wird die header.php Ansicht, somemodule.php (Inhalt) Ansicht und footer.php Ansicht importieren.(neu anordnen) Codeigniter. Wo/Wie sollte ich die Login-Methode schreiben, wenn es auf Sidebar ist

Das Problem ist, wenn ich die Login-Methode schreibe, hat es keine Inhaltsansicht, weil Login-Box in Fußzeile bereits ist. nicht notwendig für somemodule.php (content) view. (Anmeldungsformular Post-Daten Login-Methode zum Controller)

dies mein Controller ist

public function login() 
{ 
    $this->load->view('header'); 

    /// login and validation algorithm here//// 
    /// not have $this->load->view('some content') /// 

    $this->load->view('footer'); ////my loginform is in footer 

} 
public function register() 
{ 
    $this->load->view('header'); 
    $this->load->view('register_content'); // See? the other methods have a content view 
    //// algorithm and validation here ///// 
    $this->load->view('footer'); 
} 

das ist meine Form in der Fußzeile Ansicht

<?php echo form_open('member/login');?> //post data to method login controller 
        <h2> Login </h2> 
        <ul id='login'> 
         <li> 
          Username:<br> 
          <input type='text' name='username'> 
         </li> 
         <li> 
          Password:<br> 
          <input type='password' name='password'> 
         </li> 
         <br> 
         <li> 
          <input type='submit' name='btn' value='Log in'> 
         </li> 
        </ul> 
       </form> 

Wenn die Benutzereingabe falsches Passwort, Ich möchte, dass die Website auf derselben Seite mit Fehlermeldung erscheint und die "Inhaltsansicht" immer noch die gleiche ist.

oder sollte ich Algorithmus in Model-Ordner schreiben und es in den Controller importieren? aber es muss dieses Login-Modell zu allen Methoden des Controllers importieren, da alle Seiten Footer (loginbox) haben.

+0

u wird alles und jedes von CI-Handbuch bekommen http://stackoverflow.com/questions/28557129/codeigniter-login-system-with-session-to-redirect-user-to-page-if-password -corre ein mehr http://stackoverflow.com/questions/18228121/codeignit-simple-login-validation-not-working – devpro

+0

in Ihrem Fall: Sie müssen verschiedene Schaltfläche verwenden name ' – devpro

+0

kann ich sollte Login-Formular auf eine andere Seite verschieben wird es einfacher für mich ... – tuchawat

Antwort

1

Verwenden Sie Ajax, Post-Anfrage mit Ajax und in Login-Methode senden Antwort im JSON-Format und verarbeiten Sie es.

 
    `if ($this->input->server('REQUEST_METHOD') === 'POST') { 
    // Validate Login 
     return "{'status':'fail','msg':'invalid ID/Password'}"; 
    }`