thanks chetan,... thanks jsundquist,....
the problem is solved,... this is what I come up with,... in case anyone
wonder,...
in my Model:
<?php
class Invitation extends AppModel {
var $name = 'Invitation';
var $validate = array(
'user_id' => array(
'rule' => 'notEmpty',
'message' => 'user must be valid',
),
'email' => array(
'mustNotEmpty'=>array(
'rule' => 'notEmpty',
'message'=> 'Please enter to email(s)',
'last'=>true
),
'mustBeEmail'=> array(
'rule' => 'validateEmails',
'message'=> '',
'last' => true
)
),
);
function validateEmails($check)
{
$emails = array_values($check);
$key = array_keys($check);
$emails = explode(',', $emails[0]);
foreach($emails as $email) {
$email = trim($email);
if(!empty($email)) {
$valid = Validation::email($email);
if(!$valid) {
$this->validationErrors[$key[0]][0]= 'You have an error
near '.$email;
break;
}
}
}
return true;
}
function afterDelete()
{
}
}
?>
and in a controller:
$raw_emails = explode(',', $this->data['Invitation']['emails']);
foreach($raw_emails as $email)
{
$email = trim($email);
$regex =
'/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/';
if (preg_match($regex, $email))
$emails[] = $email;
}
THANK YOU guys ALL !
Salute
Chris
On Friday, November 2, 2012 7:47:54 AM UTC-7, chetan varshney wrote:
>
> Now I assume you are taking input as comma separated multiple emails. If
> yes
> use code like.
>
> In Model
>
> "email" => array(
> 'mustNotEmpty'=>array(
> 'rule' => 'notEmpty',
> 'message'=> 'Please enter to email(s)',
> 'last'=>true),
> 'mustBeEmail'=> array(
> 'rule' => 'validateEmails',
> 'message'=> '',
> 'last' => true)),
>
> and put following function in same model
>
> public function validateEmails($check) {
> $emails = array_values($check);
> $key = array_keys($check);
> $emails = explode(',', $emails[0]);
> foreach($emails as $email) {
> $email = trim($email);
> if(!empty($email)) {
> $valid = Validation::email($email);
> if(!$valid) {
> $this->validationErrors[$key[0]][0]= 'You have an error
> near '.$email;
> break;
> }
> }
> }
> return true;
> }
>
>
> nothing to do in controller. only call validation method from controller.
>
> good luck
>
> On Fri, Nov 2, 2012 at 8:05 PM, Chris <[email protected] <javascript:>>wrote:
>
>> thank you for your reply chetan,...
>> I'm steel getting an error:
>> Warning (2): preg_match() [function.preg-match]: Delimiter must not be
>> alphanumeric or backslash [APP/controllers/invitations_controller.php, line
>> 83]
>>
>> this is my invitations model:
>>
>> var $validate = array(
>> 'user_id' => array(
>> 'rule' => 'notEmpty',
>> 'message' => 'user must be valid',
>> ),
>> 'email'=> array(
>> 'mustNotEmpty'=>array(
>> 'rule' => 'notEmpty',
>> 'message'=> 'Please enter email',
>> 'last'=>true),
>> 'mustBeEmail'=> array(
>> 'rule' => array('email'),
>> 'message' => 'Please enter valid email',
>> 'last'=>true)
>> ),
>>
>> );
>>
>> and this is what I have in a invitations controller:
>> $emails = array();
>>
>> if(!empty($this->data['Invitation']['emails']))
>> {
>> $raw_emails = explode(',', $this->data['Invitation']['emails']);
>> foreach($raw_emails as $email)
>> {
>> $email = trim($email);
>> if(preg_match('VALID_EMAIL', $email)) // This is where I'm
>> getting an error...
>> $emails[] = $email;
>> }
>>
>> debug($email);
>>
>> I placed the debug in,... and I'm reading test email in the view,... but
>> steel getting an error
>>
>>
>>
>> On Friday, November 2, 2012 6:52:42 AM UTC-7, chetan varshney wrote:
>>
>>> For email validation you should use-
>>>
>>> 'email'=> array(
>>> 'mustNotEmpty'=>array(
>>> 'rule' => 'notEmpty',
>>> 'message'=> __('Please enter email'),
>>> 'last'=>true),
>>> 'mustBeEmail'=> array(
>>> 'rule' => array('email'),
>>> 'message' => __('Please enter valid email'),
>>> 'last'=>true)
>>> ),
>>>
>>> and for deep checking
>>>
>>> 'email'=> array(
>>> 'mustNotEmpty'=>array(
>>> 'rule' => 'notEmpty',
>>> 'message'=> __('Please enter email'),
>>> 'last'=>true),
>>> 'mustBeEmail'=> array(
>>> 'rule' => array('email', true),
>>> 'message' => __('Please enter valid email'),
>>> 'last'=>true)
>>> ),
>>>
>>>
>>>
>>> On Fri, Nov 2, 2012 at 7:05 PM, Chris <[email protected]> wrote:
>>>
>>>> hi guys,... I'm getting this preg_match Warning on Email issue no
>>>> matter what I do,....
>>>> can anyone help me please,....
>>>>
>>>> Warning (2): preg_match() [function.preg-match]: Delimiter must not be
>>>> alphanumeric or backslash [APP/controllers/invitations_**controller.php,
>>>> line 83]
>>>>
>>>> and this is what I have in a Model:
>>>>
>>>> var $validate = array(
>>>> 'email' => array(
>>>> 'rule' => 'alphaNumeric',
>>>> 'required' => true,
>>>> 'allowEmpty' => false,
>>>> ),
>>>> );
>>>>
>>>> thanks in advance,...
>>>> chris
>>>>
>>>> --
>>>> Like Us on FaceBook
>>>> https://www.facebook.com/**CakePHP<https://www.facebook.com/CakePHP>
>>>> Find us on Twitter http://twitter.com/CakePHP
>>>>
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "CakePHP" group.
>>>> To post to this group, send email to [email protected].
>>>> To unsubscribe from this group, send email to cake-php+u...@**
>>>> googlegroups.com.
>>>>
>>>> Visit this group at
>>>> http://groups.google.com/**group/cake-php?hl=en<http://groups.google.com/group/cake-php?hl=en>
>>>> .
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Chetan Varshney
>>> Ektanjali Softwares Pvt Ltd
>>>
>> --
>> Like Us on FaceBook https://www.facebook.com/CakePHP
>> Find us on Twitter http://twitter.com/CakePHP
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "CakePHP" group.
>> To post to this group, send email to [email protected]<javascript:>
>> .
>> To unsubscribe from this group, send email to
>> [email protected] <javascript:>.
>> Visit this group at http://groups.google.com/group/cake-php?hl=en.
>>
>>
>>
>
>
>
> --
> Chetan Varshney
> Ektanjali Softwares Pvt Ltd
>
--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
Visit this group at http://groups.google.com/group/cake-php?hl=en.