我在我的firefox浏览器上安装了一个插件,名为"SQL“,然后我在我的Cakephp网站上尝试了这个插件。我看到它能够注入很少的空白帐户(有些带有密码),还有一些没有密码。数据库不允许接受用户名、电子邮件等的空值,我也不知道它如何能够绕过cakephp验证。
用户名字段的cakephp验证
'username' => array(
'username must not be empty' => array(
'rule' => 'notE
我使用的是CakePHP 2.3.6。我在一个项目中有几个插件。我想在UsersController中实现login系统。为此,我的AppController中有以下代码:
public $components=array('Session','Auth');
public function beforeFilter(){
if($this->Auth->user('role')=='admin'){
$this->Auth->loginRedirect(array('plug
我的“用户”模型代码
class User extends AppModel{
public $validate = array(
'username' => array(
'username_shoud_be_unique' => array(
'rule' => 'isUnique',
'message' => 'Username is already taken
我想允许用户在注册功能中保留电子邮件和电话为空。我也想要任何额外的电子邮件或电话号码。变得独一无二。但是,构建规则中的isUnique函数将停止此操作,因为它看到空白字段已经存在。
public function buildRules(RulesChecker $rules)
{
$rules->add($rules->isUnique(['username']));
$rules->add($rules->isUnique(['email']));
$rules->add($rules->isUniq
我的项目中有一个用户经理。当我添加用户时,必须调用所有的验证,但根据我的要求,当我从用户发送电子邮件和密码登录时,我希望是唯一的电子邮件地址验证,而不是被调用。
UserController.php
public function login() {
$this->layout = 'login';
if ($this->request->is('post')) {
/** these conditions are used to call validations forcefully *
我创建了一个具有2个字段id(主)、( email )的表用户,我希望电子邮件唯一验证使用以下代码,但不只是工作,而不是空工作。
<?php
namespace App\Controller;
use App\Model\Validation\UserValidator;
class UsersController extends AppController
{
public function register()
{
$this->loadModel("users");
if ($this->request->is('post'))
下面的功能是确保来自表单的电子邮件是唯一的,如果它已经在使用中,就会显示一条消息。我想改变这个信息。
public function buildRules(RulesChecker $rules)
{
$rules->add($rules->isUnique(['username']));
$rules->add($rules->isUnique(['email']));
return $rules;
}
我试过这样做:
public function buildRules(RulesChecker $rules
我有这个验证规则很长一段时间了,它总是正确地工作,但现在不再正确了。
public $validate = array(
'email'=>array(
'email'=>array(
'rule'=>array('email', true),
'message'=>'E-mail is not correct'
我从cakePhp文档中看到,它们每个字段只允许一个规则。但是,如果我的字段需要唯一的日期,并且必须是日期格式。我该怎么放置它们?当前代码
<?php
App::uses('AppModel', 'Model');
class EventDate extends AppModel {
//public $useTable = 'eventdate';
public $primaryKey = 'event_date_id'; //I still need for
我想检查电子邮件/用户名在控制器中是否是唯一的。我为isUnique编写了模型验证,它可以工作。但是我也想要一个在控制器中使用它的方法。像这样的东西
$this->User->validates(array('email'=>'someemail@domain.com'));
或
$this->User->checkunique();
//is this the right way to write a different function again.
我知道我可以从控制器使用findByEmail,并检查它是否返回空的结果集。但