2013-08-05 2 views
0

Это место CTP файл на моем сервере LOCALHOST/CakePHP/просмотра/логин/index.ctpВход в систему cakephp не работает должным образом.

<div class="wrapper"> 
     <form class="form1" action="posts"> 
     <div class="formtitle">Login to your account</div> 
     <div class="input"> 
      <div class="inputtext">Username: </div> 
      <div class="inputcontent"> 
       <input type="text" /> 
      </div> 
     </div> 
     <div class="input nobottomborder"> 
      <div class="inputtext">Password: </div> 
      <div class="inputcontent"> 
       <input type="password" /> 
       <br/><a href="#">Forgot password?</a> 
      </div> 
     </div> 
     <div class="buttons"> 
      <input class="greybutton" type="submit" value="Cancel" /> 
      <input class="orangebutton" type="submit" value="Login" /> 
     </div> 
     </form> 
     </div> 

для контроллера пользователя

class LoginController extends AppController { 

var $helpers = array('Html', 'Form'); 

public function index() { 

} 
function login() { 
    // if the form was submitted 
    if(!empty($this->data)) { 
     // find the user in the database 
     $dbuser = $this->User->findByUsername($this->data['User']['username']); 
     // if found and passwords match 
     if(!empty($dbuser) && ($dbuser['User']['password'] == md5($this->data['User']['password']))) { 
      // write the username to a session 
      $this->Session->write('User', $dbuser); 
      // save the login time 
      $dbuser['User']['last_login'] = date("Y-m-d H:i:s"); 
      $this->User->save($dbuser); 
      // redirect the user 
      $this->Session->setFlash('You have successfully logged in.'); 
      $this->redirect('/posts/'); 
     } else { 
      $this->set('error', 'Either your username or password is incorrect.'); 
     } 
    } 
} 

function logout() { 
    // delete the user session 
    $this->Session->delete('User'); 
    // redirect to posts index page 
    $this->Session->setFlash('You have successfully logged out.'); 
    $this->redirect('/posts/'); 
} 

} 

Я не использую тему по умолчанию, но пользовательской темы его расположение на вид/тематические/по умолчанию. Работает. Теперь я не могу войти в систему, поэтому, пожалуйста, позвольте мне решить его.

ответ

1

Прежде всего: почему вы не используете Form Helper в своих представлениях? Это будет автоматически вставлять правильные значения, если вы их правильно настроите.

Во-вторых: ваша форма указывает на «сообщения», в то время как вы хотите указать «Пользователи/логин».

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

Предлагаю вам прочитать учебное пособие «Простая авторизация». http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html

P.S. Вы не указали версию CakePHP. Я предполагаю, что это 2.X ...

Смежные вопросы