0
私はCodeigniter 3を使用しています。鉱山のような類似の問題を持つさまざまなスタックオーバーフローリンクを参照しました。しかし、私はこの問題を解決することができませんでした。コールバック関数customAlphaは、現在のプロジェクトのlibrariesフォルダにあるファイル - > MY_Form_validation.phpから呼び出されます。私は正規表現を何回か変更しましたが、使用しませんでした。助けてください。codeigniterのアルファベット文字の妥当性検査規則を設定できません
Controller-> Login_c.php
<?php
class Login_c extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url'));
$this->load->library('encrypt');
$this->load->model('User/login_m');
$this->load->library('session');
$this->load->library('form_validation');
}
public function register_user()
{
$this->form_validation->set_rules(
'uname', 'Full Name',
'trim|xss_clean|required|min_length[4]|callback_customAlpha',
array(
'required' => 'Please provide %s.',
'customAlpha' => 'Only characters are allowed in Full Name field'
)
);
$this->form_validation->set_rules('upass', 'Password', 'required|min_length[5]');
$this->form_validation->set_rules('cpass', 'Password Confirmation', 'required|matches[upass]');
$this->form_validation->set_rules('uemail', 'Email', 'required|valid_email|is_unique[user.uemail]');
$this->form_validation->set_rules('umobile', 'Mobile Number', 'required|min_length[10]|max_length[10]');
if($this->input->post('oemail'))
{
$this->form_validation->set_rules('oemail', 'Email', 'required|valid_email|is_unique[user.oemail]');
$oemail = $this->input->post('oemail');
}
if ($this->form_validation->run() == FALSE)
{
$errors['err'] = validation_errors();
$this->load->view('User/signup.html',$errors);
}
else
{
//Code to store user entered data in database
}
}
}
?>
MY_Form_validation.php
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Form_validation extends CI_Form_validation
{
public function __construct($rules = array())
{
parent::__construct($rules);
}
public function customAlpha($str)
{
//Validation for alphabetical characters and spaces
if (!preg_match('/^(?:[A-Za-z]+(?:\s[A-Za-z]+|$)){1}$/', $str))
{
return false;
}
else
{
return true;
}
}
}
?>