Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP登录问题。但它不起作用_Php_Cakephp - Fatal编程技术网

CakePHP登录问题。但它不起作用

CakePHP登录问题。但它不起作用,php,cakephp,Php,Cakephp,我知道在这个问题上有很多问题,但我已经尝试添加了所有的解决方案,但到目前为止仍然没有运气,所以我分享我的代码,看看是否有人可以给我一个解决方案。谢谢 我已经成功地散列了我的密码,我已经在密码数据库中添加了文本字段,所以我不会有任何字符数量的问题。但每次我尝试登录时,它都会显示无效的用户名/密码,并且不会重定向或其他任何内容。我是编程和PHP的新手。请帮忙 这是我的密码: AppController.php login.ctp 请发布UsersController文件。另外,您使用的是哪一版本的C

我知道在这个问题上有很多问题,但我已经尝试添加了所有的解决方案,但到目前为止仍然没有运气,所以我分享我的代码,看看是否有人可以给我一个解决方案。谢谢

我已经成功地散列了我的密码,我已经在密码数据库中添加了文本字段,所以我不会有任何字符数量的问题。但每次我尝试登录时,它都会显示无效的用户名/密码,并且不会重定向或其他任何内容。我是编程和PHP的新手。请帮忙

这是我的密码:

AppController.php

login.ctp


请发布UsersController文件。另外,您使用的是哪一版本的CP?您已经标记了所有版本。请保留cakephp并删除其他。它将提供足够的曝光。User.php不是完整的文件。为了存储密码,您应该使用VARCHAR,而不是TEXT,对于密码字段,您应该限制字符数量。
 App::uses('Controller', 'Controller');


class AppController extends Controller {

 public $helpers = array('Html', 'Session', 'Form' );
 public $components = array(
 'DebugKit.Toolbar',
 'Session', 
 'Auth'=>array(
 'loginRedirect'=>array('Controller'=>'user', 'action'=>'index'),
 'logoutRedirect'=>array('Controller'=>'user', 'action'=>'index'),
 'authError'=>"you are not allowed to access that page",
 'authorize'=>array('Controller')
)   
);


public function isAuthorized($user){
    return TRUE;
} 

public function beforeFilter() {

    $this->Auth->allow('index', 'add');
}
}
  <h1> Login Form</h1>


 <?php

 echo $this->Form->create('User');
 echo $this->Form->input('user_name');
 echo $this->Form->input('password');
 echo $this->Form->end(__('Login'));
   ?>
      // hash password before saving It  
         /*
       public function beforeSave($options = array()) {
    $this->data['User']['password'] =
      AuthComponent::password($this->data['User']['password']);
return TRUE;

}  
*/

          public function beforeSave($options = array()) {
       if (isset($this->data['User']['password'])) {
$this->data['User']['password'] = AuthComponent::password($this->data['User']                      ['password']);
}
        return TRUE;
          }

   /**
       * Primary key field
   *
    * @var string
        */
public $primaryKey = 'user_id';

       /**
           * Display field
           *
          * @var string
             */
public $displayField = 'user_name';

         /**
        * Validation rules
         *
          * @var array
        */




public $validate = array(




//USERNAME VALIDATION

'username' => array(
        'required' => array(
            'rule' => array('minLength', 1),
            'allowEmpty' => false,
            'message' => 'Please enter a title.'
        )          
   ),

    'user_name' => array(
        'required' => array(
            'rule' => array( 'isUnique' ),
            'message' => 'Username already exist. Please try again',
            //'allowEmpty' => false,
            //'required' => TRUE,
            //'last' => TRUE, // Stop validation after this rule
            //'on' => 'create', // Limit validation to 'create' or 'update' operations
        ),

        ),

        //EMAIL ADDRESS VALIDATION

'email_address' => array(
        'required' => array(
            'rule' => array('minLength', 1),
            'allowEmpty' => false,
            'message' => 'Please add an email'
        )          
   ),

'email_address' => array(
'required' => array(
    'rule' => array( 'isUnique' ),
    'message' => 'Email already exist in our database. Please try again',
    //'allowEmpty' => false,
    //'required' => TRUE,
    //'last' => TRUE, // Stop validation after this rule
    //'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),

 'password'=>array(
 'not empty' => array(
 'rule'=>'notEmpty',
 'Message'=>'Password is empty'
 ),

 'Match Passwords'=> array(
  'rule'=>'matchPasswords',
  'message'=>'Password do not match'
 )
 ),            

  'password_confirmation'=>array(
   'not empty' => array(
 'rule'=>'notEmpty',
 'Message'=>'verify password'
 )
  )
    );


// PASSWORD CONFIRMATION VALIDATION FUNCTION 
 public function matchPasswords($data){

    if ($data['password'] == $this->data['User']['password_confirmation']) {
        return True;
    }

    $this->invalidate('password_confirmation', 'Your password do not match');
    return FALSE;
} 

         }