always-a-learner
always-a-learner

Reputation: 3794

How to validate address field in Codeigniter

I am trying to apply some validation rules to my form data in CodeIgniter.

Expected Allowed output example like this: 22-some society, some street, city. 223399

What I Entered for check the validation: 42-some Society-3, some street. arcade @##*

This is my function which I use to validate the address.

function addr_line1($addr_line1) {
    if (preg_match('/^[a-z0-9 .\-]+$/i',$addr_line1) !== FALSE)
        return TRUE;

    $this->form_validation->set_message('addr_line1', 'allow only space,comma,dot,numbers and alphabets.');

    return FALSE;
}

Now I put all my validation in the config/form_validation.php

array(
        'field' => 'addr_line1',
        'label' => 'Address Line One',
        'rules' => 'required|max_length[100]|callback_addr_line1'            
    ),

After all this,I didn't get any validation error. Am I not following the proper process? or what should the regex code to validate this type of data?

Upvotes: 0

Views: 1964

Answers (3)

Patel Urvish
Patel Urvish

Reputation: 1

    <tr>
         <td>
            <label for="address">Address:</label></td><td>
            <textarea  name="address" placeholder="Write 
            something.."><?php echo set_value('address'); ?> </textarea>
        </td>
        <td>
            <p class="err_msg">
                <?php
                echo form_error('address');
                ?>
            </p>    
        </td>

in route page:-

$this->form_validation->set_rules('address','add','required|exact_length[18]',array('required'=>"Please Enter Address",'exact_length'=>"Please Enter At Least 10 Character"));

Upvotes: 0

always-a-learner
always-a-learner

Reputation: 3794

After Your suggestion and help, I finally found the correct Function.

 function _validAddressCheck($addr_line1) {
    if (preg_match('/^[0-9a-zA-Z .,-]+$/',$addr_line1)){
         return TRUE;
    } else {
         $this->form_validation->set_message('_validAddressCheck', 'Only Allowed space, comma, dot, dash, numbers and alphabets.');

    return FALSE;
    }

}

I found that some rules which we have to follow if we are applying callback to the validation.

  1. I have created config validation array at the application/config/form_validation.php

  2. Put the callback function at the controller where I called that validations.

Find this link for creating a regex and test that. Link

Upvotes: 0

dhruv jadia
dhruv jadia

Reputation: 1680

change from

function addr_line1($addr_line1) {
    if (preg_match('/^[a-z0-9 .\-]+$/i',$addr_line1) !== FALSE)
        return TRUE;

    $this->form_validation->set_message('addr_line1', 'allow only space,comma,dot,numbers and alphabets.');

    return FALSE;
}

to

function addr_line1($addr_line1) {
    if (preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/', $addr_line1))
    {
       $this->form_validation->set_message('addr_line1', 'allow only space,comma,dot,numbers and alphabets.');
    }else{
          return true;
    }
}

Note:- you can replace £$%&*()}{@#~?><>,|=_+¬- with your disallowed character

Upvotes: 2

Related Questions