Yii Framework Forum: Validator: Un Solo Campi Dei 3 Non Viene Validato - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Validator: Un Solo Campi Dei 3 Non Viene Validato Rate Topic: -----

#1 User is offline   realtebo 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 620
  • Joined: 03-October 12
  • Location:Ferrara

Posted 04 February 2013 - 06:43 AM

Ho un controller che disegna una form, dove l'utente inserisce mittente, destinatario e testo di quello che diventerà un sms.

Ho inserito i seguenti validatori:
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('delivery_id, sender, recipient, status_id, quality, message', 'required'),
			array('delivery_id', 'length', 'max'=>19),
			array('status_id', 'length', 'max'=>11),
			array('sender, recipient', 'length', 'max'=>255),
			
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('id, delivery_id, sender, recipient, message, status_id', 'safe', 'on'=>'search'),
                        
            // blacklisting
            
            array('sender', 'blacklist', 'type'=>'FROM', 'on' => 'send_from_web'),
            array('recipient', 'blacklist', 'type'=>'RCPT', 'on' => 'send_from_web'),
            array('message', 'blacklist', 'type'=>'TEXT', 'on' => 'send_from_web'),
            
		);
	}


ma vorrei che prestaste attenzione agli ultimi tre


array('sender', 'blacklist', 'type'=>'FROM', 'on' => 'send_from_web'),
array('recipient', 'blacklist', 'type'=>'RCPT', 'on' => 'send_from_web'),
array('message', 'blacklist', 'type'=>'TEXT', 'on' => 'send_from_web'),



Il contesto viene inizializzato dal controller, ovviamente.

Segue la routine di validazione che in realtà si limita a loggare

 public function blacklist($attribute, $params)
    {
        Yii::log("Queue->blacklist ($attribute, " . print_r($params, true) . ")", CLogger::LEVEL_ERROR "application");
        Yii::getLogger()->flush();
    }


PROBLEMA: il sender viene validato, il recipient anche, il message no ...

Me ne accorgo perchè viene loggato la riga per sender, per recipient, ma non quella per message...e mi sfugge il perchè

Verifiche già fatte:
- cambio il type agli altri validatori, vengono comunque eseguiti
- togliendo l'on dal validatore del message NON viene comunque eseguito
- inserendo un altro validatore con stesso campo e diverso type NON viene comunque eseguito
- scambiando l'ordine dei validatori, message non viene comunque valutato
- visto che message era una textarea, ho provato a cambiarla in textbox, ma NON viene comunque validato
- provato ad inserire message come safe (senza scenario), e non cambia nulla
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
0

#2 User is offline   st4nny 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 325
  • Joined: 10-April 12

Posted 04 February 2013 - 06:48 AM

provato a cambiare?
type'=>'TEXT'

0

#3 User is offline   realtebo 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 620
  • Joined: 03-October 12
  • Location:Ferrara

Posted 04 February 2013 - 06:50 AM

View Postst4nny, on 04 February 2013 - 06:48 AM, said:

provato a cambiare?
type'=>'TEXT'



si, come riportato sopra nell'elenco tentativi già fatti, cambiando il tipo, comunque 'message' non viene validato
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
0

#4 User is offline   st4nny 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 325
  • Joined: 10-April 12

Posted 04 February 2013 - 07:00 AM

prima non c'era scritto, è stato aggiunto dopo.
comunque:
prova ad inserire un 'message','safe'

vedi che fa..
0

#5 User is offline   realtebo 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 620
  • Joined: 03-October 12
  • Location:Ferrara

Posted 04 February 2013 - 08:51 AM

si, scusa, non l'ho precisato, ma ho già provato ANCHE questo.

Sto debuggano l'intricato codice dei validatori di yii perchè ad un certo punto getValidators() dà, tra gli, altri il mio validatore blacklist anche per message, ma dentro il foreach che li esegue NON c'è più e non riesco a determianare dove questa informazione venga PERSA o, più probabile, venga SCARTATA per qualche motivo validissimo ma che io ignoro
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
0

#6 User is offline   st4nny 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 325
  • Joined: 10-April 12

Posted 04 February 2013 - 04:13 PM

domanda banalissima.. ma nel POST il campo message te lo ritrovi?
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users