Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/04/2011, 04:35
portela85
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: Formulario de contacto

Prueba con una función de validación antes de enviar los datos:

Código:
	private function validarDatos($id, $passwd, $confirmacion, $apellidos, $nombre, $email, $esadmin){
		$ret = null;

		if ($id == null || $id == '' )
			$ret .= 'Login <br>';
		if ($passwd == null || $passwd == '')
			$ret .= 'Password <br>';
		if ($passwd != $confirmacion)
			$ret .= 'Confirmación <br>';
		if ($email == null || !Mensaje::validar($email))
			$ret .= 'Email <br>';
		return $ret;
	}
Y la función validar mail :
Código:
public function validar($email) {
    		return eregi('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'. '@'. '[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.' . '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email);
	}

}

Código:
public function crearUsuario($id, $passwd, $confirmacion, $apellidos, $nombre, $email, $esadmin) {

		$ret = $this->validarDatos($id, $passwd, $confirmacion, $apellidos, $nombre, $email, $esadmin);
		if ( $ret != null )
			throw new Exception("Los siguientes datos no son válidos:<br/> " . $ret);
		
		if ($this->recuperarUsuario($id) != null)
			throw new Exception("El usuario ". $id ." ya está registrado en la base de datos.");
		
		if ($this->emailDuplicado($id, $email))
			throw new Exception ("La cuenta de correo: ".$email." ya existe.");
					
		$secreto = md5($passwd);		

		$query = "INSERT INTO $this->dbTabla(id, passwd, nombre, apellidos, email, esadmin) ";
		$query .= " VALUES ('$id', '$secreto', '$nombre', '$apellidos', '$email', '$esadmin')";
		//print $query;
		
		$consulta = new Consulta($query);
		
		if(!$consulta) 
			throw new Exception("Error al crear el usuario : ".$id);
					
        return $this->recuperarUsuario($id);
	}
Espero que te sirva