SoluSistemas: Blog Informativo

Las últimas noticias y avances científicos y tecnológicos

En días pasados me topé con que la web de un cliente estaba experimentando problemas y de repente al hacer clic en algunos de los enlaces del sitio salía el error: “403 – No está autorizado para ver este recurso.”  en un cuadro color rojo con blanco.

Cuando sale este cuadro, significa que intentas visualizar un artículo al cual no tienes acceso. Por defecto en joomla todos los artículos están configurados como  ”PUBLICO”, lo que significa que cualquier visitante podría verlos. Cuando este valor se cambia a “REGISTRADO” o “ESPECIAL” entonces el usuario necesitará estar registrado para poder ver dicho contenido.

Para resolver este problema:

1) Ir al administrador / Gestor de artículos y revisar en el listado los documentos que arrojan este error. Todos deben estar configurados como “Publicos”

2) Si en el gestor de artículos todo parece correcto, entonces debes visitar el GESTOR DE CATEGORIAS y GESTOR DE SECCIONES en el menú “contenido”. Allí debes revisar lo mismo, que todas las categorías y secciones estén configuradas como públicas.

3) En ocasiones jugando con la configuración activamos la opción “URL’s amigables para los motores de búsqueda” sin configurar correctamente las demás opciones. Deshabilitar esta opción para SEO o creart

Espero que esto les ayude a encontrar una solución rápida a este problema.

Recuerden que en www.solusistemas.com no sólo consigues web hosting y dominios, siempre tendrás una mano amiga!

  • Comments Off

Si acabas de instalar una plantilla en joomla 1.5 y cuando la asignas como plantilla por defecto en el gestor de plantillas recibes el error siguiente:

Direct Access to this location is not allowed.

Es porque la plantilla que acabas de instalar está diseñada para joomla 1.0.x y no para la versión 1.5.x.

Basta con ingresar al administrador y activar el plugin de “modo legado” (legacy mode)  en el gestor de plugins. Ahora al visitar la web podrás ver la plantilla recien instalada.

Espero que os haya sido de ayuda!

  • Comments Off

Si utilizas el componente DOCman para Joomla y tienes problemas al intentar subir archivos mayores a 10 megabytes es probable que hayas recibido el famoso error en una pantalla blanca:

Invalid Token

En primer lugar debes entrar en la configuración del componente  Docman (dentro del administrador de Joomla y verificar que el límite para transferencias de archivos es mayor al tamaño del archivo que pretende subir. Un límite de tamaño razonable sería 100MB.

Si te fijas bien en la utilidad de configuración del Docman, notarás que presenta dos límites de tamaño de archivo: el de docman y el interno de PHP. Dependiendo de la configuración de tu host, podrás cambiar el valor máximo de carga de archivos en el archivo .htaccess o en algunas configuraciones se logra agregando un par de líneas en un archivo php.ini localizado en el directorio raíz de tu sitio web.

El correo electrónico, mejor conocido por su nombre abreviado en  inglés “E-mail” es una herramienta que ha facilitado y acelerado la comunicación entre los seres humanos a nivel mundial. Sin embargo esta gran herramienta de comunicación, ha sido mal utilizada por  muchas personas que se dan a la tarea de crear y divulgar “información” errónea, difamatoria o totalmente falsa.

Esto es algo mucho más peligroso de lo que a simple vista podría parecer, ya que esta “desinformación” contrasta con el carácter educativo  y de fuente referencia que se le ha dado tradicionalmente a la internet.

Desde sus inicios hasta nuestros días, un número cada vez  mayor de personas utiliza  internet para aclarar sus dudas o para recopilar información sobre cualquier tema. Incluso periodistas y educadores utilizan esta herramienta como fuente de referencia (siendo muchas veces la única fuente) y pueden llegar a transmitir al público información falsa o incompleta basándose en algún artículo encontrado en la web.

Aquí desmentimos algunos rumores que circulan:

  • Bill gates no compartirá su fortuna contigo si reenvías un correo electrónico a todos tus contactos.
  • El messenger NO será cerrado por ahora y si esto ocurre, estoy 100% seguro que la comunicación vendrá directamente a través de un mensaje desde microsoft.
  • Amy Bruce no está muriendo de cáncer (si fuera así lo hubiera hecho en el 1995)
  • La lotería de X país no da premios al azar ni es posible que te caiga por error, y créanme, no hay lugar para errores…
  • La Coca Cola NO se usa para limpiar sangre. (Me pregunto si el departamento de marketing de alguna otra empresa habrá tenido que ver con este rumor…)
  • No se puede freír un huevo con celulares (móviles), ni tampoco creo que te frían el cerebro ni nada por el estilo.

En resumen… ¡Mucho cuidado con el botón de Reenviar (Forward)!

Al realizar una nueva instalación de oscommerce,  podría intentar ingresar al administrador y toparse con el siguiente error:

Fatal error: Cannot re-assign $this in /home/{RUTA DE SU CUENTA}/admin/includes/classes/upload.php on line 31

El problema es que el servidor donde  está oscommerce usa PHP 5 (en vez de la version 4).

Para resolver el problema:

Abra el archivo  /admin/includes/classes/upload.php y vaya a la linea 31 o utilice la función de buscar del editor hasta llegar a:

$this = null;

Y reemplace esta línea con la siguiente:

unset($this);

Esto debería ser suficiente para que el administrador funcione nuevamente.

Al contratar nuestro servicio de alojamiento para sitios web (web hosting), algunos de nuestros clientes nos manifiestan su preocupación cuando se enteran de que nuestros servidores son basados en el sistema operativo Linux. Esto es perfectamente comprensible, ya que el solo hecho de mencionar Linux para muchas personas evoca en su mente la figura de “hackers” y un sistema operativo utilizable sólo por los gurús de la informática.  Este es un estigma que ha cargado Linux desde sus inicios y es un prejuicio que ha sido alimentado por los esfuerzos mercadológicos de grandes corporaciones que ven sus intereses amenazados por este gran fenómeno social a escala mundial que es el desarrollo de software libre de código abierto.

Independientemente del hecho de que Linux sea fácil o difícil de usar, nuestro servicio de alojamiento no se ve impactado por el sistema operativo que utilice el cliente, ya que lo que SoluSistemas provee es un compartimento virtual en su servidor, con ciertos permisos establecidos (que no son más que reglas que limitan el acceso del usuario a los recursos del servidor) para que éste pueda publicar su sitio web. Si el cliente usa Windows como sistema operativo (como es el 99% de los casos) no tendrá ningun problema a la hora de manipular sus archivos en el servidor. Tampoco lo tendría un usuario que utilice Mac Os o Linux.

En realidad para manejar su cuenta de hosting sólo se necesita un navegador o browser (recomendamos Mozilla Firefox) para ingresar a nuestro moderno panel de control Cpanel y manejar sus cuentas de e-mail, agregar dominios adicionales, crear bases de datos, etc.

¿Entonces qué razones tendría que tomar en cuenta  para  elegir hosting Windows?

Además obviamente de la propia preferencia personal (ya sea porque le gustan los colores de la banderita del windows o porque se siente más seguro usando productos de una empresa grande como Microsoft), existen otros factores que pueden influir en la elección del sistema operativo para su cuenta  de hosting.

Las razones más  comunes:

- Su sitio web fue programado utilizando una tecnología desarrollada por Microsoft:

Las páginas web desarrolladas con el lenguaje de programación denominado Active Server Pages (ASP) o su más reciente versión ASP.NET, requieren de un servidor web basado en Windows.  Existen algunas implementaciones en linux de ASP (chilliasp por ejemplo), pero nunca es lo mismo que ejecutar una aplicación web ASP en su entorno nativo. El lenguaje utilizado en servidores linux es el PHP y es el más utilizado en la actualidad.

- Su sitio web utiliza el motor de base de datos SQL Server:

Este motor de bases de datos es propietario de Microsoft, por lo tanto necesita un servidor windows para ejecutarse. El equivalente en Linux es el MySQL el cual es en la mayoría de los casos mas rápido, ligero y no hay que pagar las costosas licencias asociadas a SQL server.

En conclusión, si no ha entendido ninguna de las razones anteriormente expuestas, lo más seguro es que no necesite un servidor basado en Windows para alojar su sitio web.

Ventajas del hosting basado en Linux

  • Es el tipo de hosting más abundante en la actualidad.
  • Por lo general es más económico ya que la compañía de hosting no tiene que pagar los altos costos de las licencias de Microsoft.
  • En la mayoría de los casos brinda mayor seguridad y estabilidad
  • Ofrece las herramientas más utilizadas para la construcción de sitios web y portales: PHP, Phyton, PERL y MySQL.
  • La mayoría de las aplicaciones famosas y ampliamente utilizadas en la actualidad (como por ejemplo Joomla o el mismo Wordpress) son desarrolladas para esta plataforma.
  • Dispone de una comunidad de cientos de miles de personas que colaboran entre sí (Open source community o comunidad de software de código libre).

Si su página web es sólo una colección de archivos html y fotos, realmente no notará la diferencia entre una plataforma de  hosting u otra, pero si su sitio web es dinámico tendrá que verificar si está basado en ASP(.NET) o PHP antes de realizar su elección.

De todas formas confiamos en que su elección será la correcta: www.Solusistemas.com

Elegir un nombre de dominio es casi tan importante como el diseño de su sitio web (en algunos casos incluso más importante) .

Es lo que sus clientes o visitantes potenciales utilizarán y tendrán que recordar si desean visitar su web.

En SoluSistemas registramos los siguientes tipos de dominios (también denominadas como extensiones):

  • .COM: es la extensión  más común y abreviatura de “Commercial” (comercial). Es el que se recuerda más fácilmente.
  • .NET: Originalmente utilizado para operadores de redes (red = network en inglés), ahora se usa para sitios web de todo tipo y es la segunda opción a utilizar cuando el .COM no está disponible.
  • .ORG: Organizaciones no gubernamentales y sitios sin fines de lucro.
  • .WS: Para cualquier tipo de sitios web (es la extensión oficial de una isla de Micronesia pero se le ha  reconocido y utilizado comercialmente como abreviatura de WebSite.)
  • .INFO: Para sitios informativos (Info = Information o información).
  • .COM.DO/.NET.DO / .ORG.DO: Variantes locales (para la República Dominicana) de los nombres de dominio .com, .net y .org.

Una vez que Ud. elija la extensión adecuada para su dominio (si no está seguro, utilice .COM), a continuación tendrá que elegir el nombre como tal.

Consejos para la elección de un nombre de dominio para una empresa o un sitio web comercial:

  • Use la versión más corta posible, pero que tenga sentido y que:
  • De ser posible, no incluya números en su nombre de dominio a menos que sean parte de su marca o nombre comercial.
  • Existen opiniones divididas sobre el uso del guión (-) en los nombres de dominio. Por una parte, es fácil para las personas olvidarse del guión al escribir el nombre y terminar en la web de la competencia (que no tiene guión). Sin embargo, en muchos casos ayuda a hacer más legibles los nombres de dominio formados por varias palabras. En este caso tendrá que evaluar si el nombre se hace muy largo al agregar los guiones.
  • Tenga cuidado con las abreviaturas, un nombre demasiado abreviado hace que sea muy difícil de recordar.
  • La longitud ideal de los nombres de dominio es entre 4 y 12 caracteres (sin contar los correspondientes a la extensión).

Una vez elegido y registrado su nombre de dominio principal, es importante que también registre las demás extensiones de dicho dominio para evitar que alguien quiera hacerle daño a su marca o competir directamente con usted usando su propio dominio pero con una extensión diferente.

Tener presencia en la web ya no es un lujo, es una necesidad. Registre su nombre de dominio en SoluSistemas por tan sólo RD$550 al año!

Debido al cambio de sintaxis en las nuevas versiones de MySQL  algunas partes del OsCommerce dejan de funcionar. En este caso son las  categorías  y en ocasiones las búsquedas.

Las subcategorías en  OsCommerce funcionan como búsquedas avanzadas de las categorías. Por casualidad, este problema solo afecta a las búsquedas avanzadas y no a las normales. El error es el siguiente:

select count(p.products_id) as total from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = ‘1′ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘3′ and p2c.categories_id = ‘24′ [TEP STOP]

La solución pasa por editar dos archivos del OsCommerce siguiendo los pasos que vienen a continuación:

PASO 1:

Abre el archivo catalog/index.php (si no existe el directorio catalog, es el index del public_html) y se cambia todo este bloque:

// show the products of a specified manufacturer
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
// We are asked to show only a specific category
$listing_sql = “select ” . $select_column_list . ” p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from ” . TABLE_PRODUCTS . ” p, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_MANUFACTURERS . ” m, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id where p.products_status = ‘1′ and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = ‘” . (int)$HTTP_GET_VARS['manufacturers_id'] . “‘ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p2c.categories_id = ‘” . (int)$HTTP_GET_VARS['filter_id'] . “‘”;
} else {
// We show them all
$listing_sql = “select ” . $select_column_list . ” p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from ” . TABLE_PRODUCTS . ” p, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_MANUFACTURERS . ” m left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id where p.products_status = ‘1′ and pd.products_id = p.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = ‘” . (int)$HTTP_GET_VARS['manufacturers_id'] . “‘”;
}
} else {
// show the products in a given categorie
if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
// We are asked to show only specific catgeory
$listing_sql = “select ” . $select_column_list . ” p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from ” . TABLE_PRODUCTS . ” p, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_MANUFACTURERS . ” m, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id where p.products_status = ‘1′ and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = ‘” . (int)$HTTP_GET_VARS['filter_id'] . “‘ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p2c.categories_id = ‘” . (int)$current_category_id . “‘”;
} else {
// We show them all
$listing_sql = “select ” . $select_column_list . ” p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_PRODUCTS . ” p left join ” . TABLE_MANUFACTURERS . ” m on p.manufacturers_id = m.manufacturers_id, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id where p.products_status = ‘1′ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p2c.categories_id = ‘” . (int)$current_category_id . “‘”;
}
}

por este código:

// show the products of a specified manufacturer
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
// We are asked to show only a specific category
$listing_sql = “select ” . $select_column_list . ” p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from (” . TABLE_PRODUCTS . ” p, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_MANUFACTURERS . ” m, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c ) left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id where p.products_status = ‘1′ and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = ‘” . (int)$HTTP_GET_VARS['manufacturers_id'] . “‘ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p2c.categories_id = ‘” . (int)$HTTP_GET_VARS['filter_id'] . “‘”;
} else {
// We show them all
$listing_sql = “select ” . $select_column_list . ” p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from (” . TABLE_PRODUCTS . ” p, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_MANUFACTURERS . ” m) left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id where p.products_status = ‘1′ and pd.products_id = p.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = ‘” . (int)$HTTP_GET_VARS['manufacturers_id'] . “‘”;
}
} else {
// show the products in a given categorie
if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
// We are asked to show only specific catgeory
$listing_sql = “select ” . $select_column_list . ” p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from (” . TABLE_PRODUCTS . ” p, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_MANUFACTURERS . ” m, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c) left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id where p.products_status = ‘1′ and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = ‘” . (int)$HTTP_GET_VARS['filter_id'] . “‘ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p2c.categories_id = ‘” . (int)$current_category_id . “‘”;
} else {
// We show them all
$listing_sql = “select ” . $select_column_list . ” p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from ((” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_PRODUCTS . ” p) left join ” . TABLE_MANUFACTURERS . ” m on p.manufacturers_id = m.manufacturers_id, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c) left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id where p.products_status = ‘1′ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p2c.categories_id = ‘” . (int)$current_category_id . “‘”;
}
}

PASO 2

Archivo catalog/avanced_search_result.php (si no existe el directorio catalog el archivo es avanced_search_result.php del public_html) y se cambia al igual que antes lo siguiente:

$from_str = “from ” . TABLE_PRODUCTS . ” p left join ” . TABLE_MANUFACTURERS . ” m using(manufacturers_id), ” . TABLE_PRODUCTS_DESCRIPTION . ” pd left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id, ” . TABLE_CATEGORIES . ” c, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c”;

por este código:

$from_str = “from ( ” . TABLE_PRODUCTS . ” p left join ” . TABLE_MANUFACTURERS . ” m using(manufacturers_id), ” . TABLE_PRODUCTS_DESCRIPTION . ” pd )left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id, ” . TABLE_CATEGORIES . ” c, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c “;

Con estos simples cambios el programa debería funcionar.

*Actualización el 04 de diciembre del 2010*

Al parecer el editor del wordpress modificó las comillas del código fuente, por eso algunos tuvieron problemas al implementar la solución si copiaron y pegaron el código. De antemano mis disculpas y gracias por sus comentarios positivos.

Recientemente trabajando con la personalización de una tienda virtual basada en el sistema Oscommerce me di cuenta que al seleccionar otro idioma diferente al inglés para que salga por defecto al visitar la tienda, oscommerce seguía mostrando la tienda en inglés.

Luego de mucha investigación y de urgar el código, me enteré que Oscommerce 2.2 detecta el idioma del navegador utilizado por el visitante y muestra dicho idioma por defecto, obviando así el parámetro configurado en el administrador. Como por costumbre utilizo el navegador (y muchos otros programas) en inglés, siempre me mostraba la versión en inglés de la tienda.

Un truco para evitar que esto suceda y que siempre salga por defecto el idioma que nosotros seleccionemos para mostrarse por defecto,  es ingresar al administrador, ir a la lista de idiomas instalados y cambiar el código de identificación del idioma inglés (‘en’) por cualquier otro código ficticio, como por ejemplo ‘rr’ o ‘ne’.

Debéis tomar en cuenta  que si habéis creado algún enlace manualmente con referencia al idioma inglés (por ejemplo: xyz.php?language=en), en dicho caso tendréis que cambiar el código en el enlace y utilizar el código de idioma ficticio ingresado en el admin para “engañar” al programa.

El programa se comporta de la siguiente manera: si el oscommerce no tiene instalado el idioma detectado en el navegador del usuario entonces utiliza el idioma por defecto que seleccionemos del administrador. Creo que quizás en muchos casos la selección automática es útil, pero este tipo de automatismos se presta para crear mucha confusión.

Espero que este comentario os sirva de ayuda y os evite muchos dolores de cabeza.

Ing. Luis Pichardo
www.solusistemas.com

  

Calendar

November 2014
M T W T F S S
« Jan    
 12
3456789
10111213141516
17181920212223
24252627282930

Recent Entries

    Recent Comments

      Most Commented