Hola a todos,
Estoy probando con la herramienta de validación de email "validates_email_in" y luego que guardo el registro (eso lo hace bien) me arroja el siguiente error "
Notice: Array to string conversion in C:\xampp\htdocs\miproyecto\library\kumbia\db\active_record_base\active_record_base.php on line 1652". He buscado en internet pero en realidad no encuentro la solución.
En mi modelo
usuario.php tengo:
class Usuario extends ActiveRecord {
public function __construct(){
//Validaciones
//Al registrar un usuario
$this->validates_email_in('email');
}
}
email es el campo con nombre idéntico en la tabla y en el campo del formulario.
En la vista
registrar.phtml tengo:
(...)
<div><?php echo form_tag('usuario/crear') ?>
<p>* Email: <?php echo text_field_tag('email', 'size: 25') ?></p>
(... el resto del formulario...)
<p><?php echo submit_tag('Guardar Usuario') ?></p>
<?php echo end_form_tag() ?></div><!-- Fin del formulario-->
y en el Controlador
usuario_controller.php:
class UsuarioController extends ApplicationController {
public function __contruct(){
}
public function registrar(){
$this->nullify('usuario');
}
public function crear(){
if ($this->has_post('usuario')){
$usuario = new Usuario;
if ($Usuario->save_from_request()){ Flash::success('Registro de usuario realizado exitosamente');
} else {
$this->usuario = $usuario;
}
}
$this->render('registrar');
}
} //fin de la clase
Les agradezco de antemano si me pueden ayudar <!-- s
--><img src="{SMILIES_PATH}/icon_wink.gif" alt="
" title="Wink" /><!-- s
--> gracias!!
Comentarios
No se si me falta algo porque intenté tambien con el is_alnum($valor) en el controlador y no lo reconoce <!-- s:roll: --><img src="{SMILIES_PATH}/icon_rolleyes.gif" alt=":roll:" title="Rolling Eyes" /><!-- s:roll: --> definitivamente estoy haciendo algo mal...
Gracias
[1] Notice: Array to string conversion in C:\xampp\htdocs\miproyecto\library\kumbia\db\active_record_base\active_record_base.php on line 1652
Te recuerda que ya kumbia no utiliza Assembla para controlar el desarrollo del framework, actualmente estamos en launchpad
* Validacion validates_email
*
*/
$e = false;
foreach($this->_validates_email as $fkey) {
if (isset($this->$fkey) && !is_null($this->$fkey) && $this->$fkey != '') {
if (!ereg("^[a-zA-Z0-9_\.\+]+@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*$", $this->$fkey, $regs)) {
if (isset($opt)) {
Flash::error($opt);
} else {
$field = isset($opt) ? $opt : $fkey;
Flash::error("Formato de e-mail erroneo en el campo $field");
}
$e = true;
}
}
}
Copié el segmento por si acaso <!-- s --><img src="{SMILIES_PATH}/icon_wink.gif" alt="" title="Wink" /><!-- s -->
y gracias, porque no veo el error en ningún lado!!!
Intenté usando $this->validates_format_of("email", "^(+)@((?:[?a?z0?9]+\.)+[a?z]{2,})$"); en mi modelo (del 1er mensaje) en vez de "validates_email_in" y ésta vez si me arroja el mensaje de ! Formato erróneo para email y no me permite guardar los datos cuando el email es incorrecto <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> pero me hace lo mismo cuando el email es correcto <!-- s:!: --><img src="{SMILIES_PATH}/icon_exclaim.gif" alt=":!:" title="Exclamation" /><!-- s:!: --> . y arroja el siguiente error:
Warning: ereg() [function.ereg]: REG_BADRPT in C:\xampp\htdocs\miproyecto\library\kumbia\db\active_record_base\active_record_base.php on line 1611
en la linea 1611 del Active_Record_Base.php dice:
/**
* Validacion validates_format
*
*/
$e = false;
foreach($this->_validates_format as $fkey => $opt) {
if (isset($this->$fkey) && !is_null($this->$fkey) && $this->$fkey != '') {
if (!ereg($opt[1], $this->$fkey)) {
if (isset($opt)) {
Flash::error($opt);
} else {
$field = isset($opt) ? $opt : $fkey;
Flash::error("Formato erroneo para $field");
}
$e = true;
}
}
}
Si me pueden ayudar se los agradezco...si es cuestión de la versión que tengo por favor indiquenme el enlace directo para descargarla... he buscado y consigo la misma!!!
Gracias!!!
El método validates_email_in lo coloqué en el modelo haciendo referencia a "email" (que se llama igual en la tabla y en el formulario)... debo hacer algo más en otro lado????
que código quieres que muestre???
/**
* Valida que ciertos atributos tengan un formato de e-mail correcto
* antes de insertar o actualizar
*
* $this->_validates_email_in("correo")
*/
protected function validates_email_in()
{
$this->_connect();
$params = get_params(func_get_args());
if (is_array($params[0])) {
$params = $params[0];
}
$fields = array();
for ($i = 0;isset($params[$i]);$i++) {
$fields[] = $params[$i];
unset($params[$i]);
$i++;
}
foreach($fields as $p) {
if (!in_array($p, $this->fields) && !isset($this->$p)) {
throw new ActiveRecordException('No se puede validar presencia de "' . $p . '"
en el modelo ' . $this->source . ' porque no existe el atributo</u><br>
Verifique que el atributo este bien escrito y/o exista en la relación ');
return false;
}
if (!isset($this->_validates_email[$p])) {
$this->_validates_email[$p] = $params;
}
}
return true;
}
Ahora bien, estoy usando el easyeclipse for php y éste me muestra ciertas cosas:
Error log: 26 mensajes
Task: 31 items
Problems: 0 error, 193 warnings, 0 info
No sé que signifiquen, será que la cuestión viene por la versión de mi kumbia?? si es así por favor, indíquenme el enlace directísimo donde descargarla porque en realidad he buscado y consigo siempre la misma que tengo yo <!-- s:? --><img src="{SMILIES_PATH}/icon_confused.gif" alt=":?" title="Confused" /><!-- s:? -->
Gracias <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
Ahora si es verdad que no <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( -->
Hice una serie de pasos para bajar la versión 0.5.1 revisión 155 (que entiendo es la última) con launchpad y luego de toda la odisea, hice una copia del proyecto en mi computador, la coloqué dentro del htdocs del xampp, la renombre (como había hecho en la 0.5) y ZASS!! ERROR 500.
Entonces, le vuelvo a cambiar el nombre a la carpeta a kumbia y me abre mi formulario de registro de usuario pero a la mitad y el calendario sin la interfaz (sin la ventanita, sólo letras y números)
POR FAVOR! necesito que me indiquen si la versión 0.5 está estable o como puedo descargar los arreglos a los bugs sin cambiar otra cosa.. <!-- s:roll: --><img src="{SMILIES_PATH}/icon_rolleyes.gif" alt=":roll:" title="Rolling Eyes" /><!-- s:roll: --> estoy perdiendo mucho tiempo en descargas y no en desarrollo... <!-- s --><img src="{SMILIES_PATH}/icon_cry.gif" alt="" title="Crying or Very sad" /><!-- s -->
Gracias!!
[1] <!-- m --><a class="postlink" href="http://kumbia.svn.sourceforge.net/">http://kumbia.svn.sourceforge.net/</a><!-- m -->
<!-- m --><a class="postlink" href="http://wiki.kumbiaphp.com/Descargar_SVN">http://wiki.kumbiaphp.com/Descargar_SVN</a><!-- m -->