Hosting, registro y alojamiento web, dominios y servidores
Tu servidor de alojamiento web, servidores y registro de dominios (acceso a página principal)
Favoritos | Recomiéndanos | Enlázate | Contacto | Buscador   
Acerca de Dimensis | Informaciones legales   
··································   
[ Acceso a la Página Principal ]   
 
  BLOG Consultas Soporte Programación Utilidades Artículos Mapa web Área privada  


Soporte técnico sobre alojamiento web y servidores de Dimensis

Información para administrar tus recursos, resolver dudas, contactar con nuestro soporte y estar siempre al día



Artículos publicados en Univers Dimensis

· Artículos por temas
· Definiciones
· Archivo de artículos
· Ranking (top)
· Sindicación (RSS)

· Artículos en catalán



  


Google

Errores comunes de PHP en los CMS

¿Te ha sucedido que instalas en tu CMS un componente, un módulo y el resultado son varias lineas de errores? Aquí te damos una pequeña guía o pistas de lo que hay que hacer para solucionarlo.

Normalmente, la programación del código fuente de los CMS ha sido testeada y depurada. No obstante, los sistemas CMS deben mantener siempre en constante actualización, puesto que cada día se descubren nuevos agujeros de seguridad o se realizan optimizaciones y nuevas funcionalidades que contribuyen a mejorar el rendimiento. Aún así es habitual encontrar errores en el momento de la instalación, actualización o con el paso del tiempo. Estos pueden ser algunos de los motivos:
1. Hemos modificado algún archivo en su código fuente y esta es la causa de los errores.
2. Nuestro servidor no soporta alguna de las funciones que utiliza tu CMS, o han sido deshabilitadas por alguna razón.
Ejemplo: Warning: ini_set() has been disabled for security reasons in /home/.../moscode.inc on line 18
3. El servidor corre en modo SAFE MODE. Es posible que necesites añadir algún parche de seguridad a tu CMS.
Ejemplo: Warning: copy(): SAFE MODE Restriction in effect. ... in /home/... /script.php on line 35
4. No hemos otorgado correctamente los permisos a los directorios y/o archivos en los cuales el sistema necesita escribir información. Esta es la razón más frecuente de todos los errores que se producen en los sitios CMS.
Ejemplo: Warning: move_uploaded_file(../ ... /arch.zip): failed to open stream: Permission denied in /home/... /script.php on line 10
5. Alguno de los archivos se encuentra corrupto (código incompleto).
Un error de este tipo: Fatal error: Class moscomponent: Cannot inherit from undefined class mosdbtable in /home/.../mambo.php on line 915 6. Falta algún archivo necesario para el funcionamiento del sistema.
Un ejemplo: Warning: main(language/spanish.php): failed to open stream: No such file or directory in /home/.../index.php on line 111
7. A veces hay incompatibilidades entre módulos y componentes que no son para la versión del CMS que estamos utilizando.
Por otra parte, hay que saber diferenciar entre los errores personalizados de nuestro CMS y los errores del depurador de PHP. Los primeros aparecen sobre la interfaz administrativa y nada nos informan sobre el script o la linea que produce el error; los segundos sí lo hacen y se muestran en la parte superior de las páginas.

Solución a algunos problemas que producen errores de PHP

Hay que tener en cuenta dónde se produce el error, qué acción ejecutamos al momento de producirse, etc. Por ejemplo, hay que diferenciar si el error se produce en todo el sitio, o si aparece cuando intentamos instalar o utilizar un componente nuevo.

CONSEJO: Visita los distintos foros especializados que existan sobre tu CMS, seguramente los errores que te surjan ya le han sucedido a alguien más, copia la primer parte del error, por ejemplo: "Fatal error: Class moscomponent: Cannot inherit from undefined class" y buscalo con el buscador del foro en cuestión. Resolverás muchos errores buscando de esta manera en los foros.

Si decides postear en los foros, trata de dar toda la información posible de cómo se produce y cuál es el error, pero nunca des información sobre las rutas internas de tu servidor (ej: /home/usuario/public_html/...) porque esto puede poner en riesgo la seguridad de tu sitio.

Algunas soluciones se desprenden de las causas que provocan los errores:
1. Verifica la integridad del archivos php que provoca el error, para esto, abrilo en modo edición: debe tener en su última linea el símbolo ?> . Si no es así es porque está corrupto, y hay que subirlo nuevamente.
2. Comprueba y otorga los permisos necesarios de los archivos y directorios para escritura, lectura y ejecución.
3. Comprueba que todos los archivos necesarios para el funcionamiento del sistema estén subidos al servidor.
Cómo interpretar los errores de PHP

Para que aparezcan los mensajes de error en el navegador, la directiva del php.ini display_errors debe estar en On. Existen varios niveles de error: Notificaciones (E_NOTICE), Errores de parseo (E_PARSE), Advertencias (E_WARNING) y Errores (E_ERROR).

Se puede configurar PHP para que solamente muestre los mensajes de alguno de estos niveles con opción error_reporting o con la función error_reporting().

Parse error aparece cuando la sintaxis del script es errónea, este tipo de errores se comprueban antes de comenzar con la ejecución del script y todos los incluidos en él. Warning es un error en tiempo de ejecución. Si aparece un Warning, el script intenta seguir con la ejecución. Fatal error denota un error grave, Php detiene la ejecución del script con este tipo de errores, ya que no puede continuar.

Los errores de PHP dan mucha información, hay que saber interpretarlos y buscar la solución, para ver qué nos dicen, vamos a separar la información que proveen con unos ejemplos.

Interpretando un error de php:

Warning: fopen(/dir/archivo.html): failed to open stream: Operation not permitted in /home/.../script.php on line 37

Warning: es el tipo o nivel de error, en este caso una advertencia
fopen: es la función donde se produce el error
(/dir/archivo.html): es el argumento de la función, en este ejemplo es el archivo que debe ser abierto por la función fopen
failed to open stream: es explicación de la falla que se produce (que no ha podido ser abierto para el fin que se necesitaba)
Operation not permitted: operación no permitida (puede deberse a que el archivo en cuestión no tiene los permisos necesarios)
in /home/.../script.php on line 37: esto es exactamente donde se produce el error, en el archivo script.php del directorio /home/.../ en la linea 37.

Ejemplo 1 de error de php:

Fatal error: Call to undefined function mysqlx_connect() in /home/..../script.php on line 3

Significa: "Error fatal (se detiene la ejecución del script): llamada hacia una función no definida mysqlx_connect() en la linea 3 del archivo script.php". La razón salta a la vista, la función mysqlx_connect() no existe, se ha cometido un error de tipeo ingresando una x que no va, la verdadera función es mysql_connect()

Ejemplo 2 de error de php:

Parse error: parse error, unexpected T_STRING in /home/.../script.php on line 1

Es algo así como: "Error de parseo: ha aparecido una cadena inesperada en la linea 1 del archivo script.php". Estos errores siempre son por una mala sintaxis de los scripts.

Ejemplo 3 de error de php:

Warning: cannot modify header information - headers already sent by (output started at /home/.../script.php:40) in /home/.../login.php on line 85

No se puede modificar la información de la cabecera (ya han sido enviadas las cabeceras por... ). Hay datos enviados al navegador antes de que sean enviadas las cabeceras mediante la función header().

Otros ejemplos de errores de PHP:
  • Warning: file_exists() [function.file-exists]: Unable to access in /home/....../script.php on line 329
  • Warning: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in /home/... /script.php on line 0
  • Warning: Server Error in /home/... /script.php on line 2
  • Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/... /script.php on line 24
  • Notice: Use of undefined constant protocol - assumed 'protocol' in /home/... /script.php on line 53
  • Warning: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0
  • Warning: mail() [function.mail]: SMTP server response: 503 5.5.2 Need Rcpt command.
  • Warning: setlocale(): Passing locale category name as string is deprecated. Use the LC_* -constants instead. in /home/... /script.php on line 565
  • Warning: session_start(): open(/tmpsess_d710bce6eb2ecfe7e8e50cce4da8fbb8, O_RDWR) failed: No such file or directory (2) in /home/../script.php on line 3
  • Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/.../script.php:3) in /home/.../script.php on line 3
  • Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/.../script.php:3) in /home/.../script.php on line 3
  • Warning: fopen(): open_basedir restriction in effect. File(/arch.html) is not within the allowed path(s): (/home/user/:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/.../script.php on line 37
  • Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
  • Warning: Bad arguments to implode() in /home/.../script.php on line 3
  • Warning: mysql_query(): Access denied for user: ' name@domain.com ' (Using password: NO) in /home/.../script.php on line 27
  • Warning: mysql_query(): A link to the server could not be established in /home/.../script.php on line 27
  • Warning: fwrite(): supplied argument is not a valid stream resource in /home/.../script.php on line 13
  • Warning: eregi(): REG_BADRPT
  • Warning: fsockopen() expects parameter 2 to be long, resource given in /home/.../script.php on line 35
  • Warning: fputs(): supplied argument is not a valid stream resource in /home/.../script.php on line 36
  • Warning: mysql_connect(): Too many connections in /home/.../script.php on line 48
  • Warning: mail(): Failed to connect to mailserver at "xxx" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in /home/.../script.php on line 6
  • Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/home/... /temp/) in Unknown on line 0



    Escrito por Gonzalo Reynoso. Publicado en www.mambo.org.mx

    Este artículo ha recibido 46867 visitas.



  • ¿Conoces nuestros servicios de alojamiento web y servidores?


    Opciones


    - Enviar por email
    - Imprimir
    - Añadir a favoritos

    - Univers Dimensis
    - Listado de artículos
    - Ver ránking general


    [ Publicar artículo ]


    Artículos más leidos en Internet:

    · Errores comunes de PHP en los CMS (46868)
    · Seguridad en accesos remotos (45982)
    · Tipos de redes inalámbricas (45310)
    · Los ROOT SERVER - El árbol de 13 raíces (39425)
    · ¿Qué es un proxy? (37640)

    Vota este artículo

    Malo
    Regular
    Bueno
    Muy bueno
    Excelente
    Puntos: 0 - Votos: 0


      

    · DESTACADOS ·

    Máquinas dedicadas y servidores virtuales
    NAS para almacenamiento remoto accesible mediante NFS


    · DESCUENTOS ·

    Ofertas de alojamiento web y servidores
    Allotjament de pàgines web en català



    .:Webs destacadas:.

    · el blog de DIMENSIS
    · Cambio climático
    · Productes del Camp


    Productes del Camp
    Especial Productes del Camp

    Xarxa ECO



    HacklabValls



    1999-2019 Dimensis Global Communications (Los contenidos pueden compartirse bajo licencia Copyleft)
    Alojamiento web, servidores virtuales, servidores dedicados y registro de dominios.
    Optimizado para resolución de 800x600 y 1024x768. Requiere activación de cookies, Java y Flash.
    WebSite realizado con PHP-Nuke, bajo licencia GNU/GPL. (Tiempo de carga: 0.008 segundos)