Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   detectar errores en hosting (https://www.clubdelphi.com/foros/showthread.php?t=52514)

lucasarts_18 23-01-2008 15:26:12

detectar errores en hosting
 
Hola a todos:

He subido mis páginas a mi hosting, pero al momento de conectar a la base de datos la página completa se queda en blanco. posiblemente por un error de conexión.

Código PHP:

error_reporting(E_ALL);
ini_set('error_reporting'E_ALL); 

Por más que coloque esas lineas en los archivos php no me muestra ningún tipo de información, solo se queda en blanco.

¿Qué puedo hacer?

Gracias...

Hasta Luego .-

Mick 23-01-2008 15:42:59

Si el codigo php tiene algun error de sintaxis, nunca se llegara a compilar y ejecutar el script, es decir se produce un error antes de que se lleguen a ejecutar las lineas de codigo que activan los errores y por lo tanto no veras nada en pantalla.

Prueba a activar los errores en el archivo .htaccess añadiendo un par de lineas como estas:

php_value display_errors On
php_value error_reporting E_ALL

Saludos

dec 23-01-2008 15:44:31

Hola,

El "error_reporting" mostrará errores de PHP, pero, no en caso de que tu aplicación no pueda conectar con la base de datos. No sé cómo lo haces, pero, si quieres mostrar un error en caso de no poder conectar con la base de datos tendrás que hacerlo por tu cuenta. ;)

lucasarts_18 23-01-2008 16:18:30

Cita:

Empezado por Mick (Mensaje 260228)

php_value display_errors On
php_value error_reporting E_ALL

Saludos

Puse estas directivas en el archivo que mencionas, lo coloque en la misma carpeta donde se encuentra el archivo php que creo que da el error, pero la página sigue quedando en blanco.

No se si será un error de sintaxis, en mi equipo local no da error :eek:.

Cita:

Empezado por dec
si quieres mostrar un error en caso de no poder conectar con la base de datos tendrás que hacerlo por tu cuenta.

Esto ya está implementado....


Este es el trozo de código donde falla

Código PHP:

include_once ('../../includes/funciones.php');

   echo 
'antes de conectar';

   
$db conectar();

   echo 
'despues de conectar'

   
$sql "select count(*) from
           usuario
           where login = ?
             and pass  = ?"
;

    
$datos = array($usuario$password);

    
$result $db->Execute($sql$datos);

    if (!
$result)
       die(
'Error en string SQL, descripción de error: '$db->ErrorMsg());


    
$cantFilas $result->FetchRow();

    if (
$cantFilas[0] > 0)
        return 
true;
    else
        return 
false

Como podrán darse cuenta, mando dos mensajes por pantallas para saber si todo va bien, el primero "antes de conectar" lo imprime correctamente, pero el segundo no, por lo tanto asumo que la función conectar da problemas.

acá está la función conectar.

Código PHP:

function conectar(){

   
set_include_path($_SERVER['DOCUMENT_ROOT'] . '/libs_php/adodb5');

    
define('ADODB_ASSOC_CASE'0);
   include(
'adodb.inc.php');

   
$database 'cabo';
   
$db = &AdoNewConnection('mysql');
   
//$db->debug = True;
   
$db->PConnect('localhost','$$''$$'$database);

   if (!
$db) die("La conexión ha fallado.");

   return 
$db;



mmm...qué dicen....:rolleyes:

Gracias.

Hasta Luego .-

oracle 23-01-2008 17:41:38

Yo particularmente para conectarme a Base de Datos mysql utilizo el Objeto mysqli:

Código PHP:

function conectar(){

   
$database 'cabo';

   
$db= new mysqli('localhost''$$''$$'$database);

    if (
mysqli_connect_errno())  
     { 
      
printf("Connect failed: %s\n"mysqli_connect_error()); 
      exit(); 
      }       

   return 
$db;

}

//luego para ejecutar consultas solo tendrias que a traves de $db llamar a la funcion query

   
$sql "select count(*) from
           usuario
           where login = ?
             and pass  = ?"
;

   
$db->query($sql); 

Espero te sirva de algo.....

Mick 23-01-2008 17:53:41

Ummm porque no afinas mas ??? pon un echo despues de cada linea de la funcion conectar() para saber que linea es en la que se para todo ;).

Saludos

Emilio 23-01-2008 21:47:36

Deberías indicar el sistema operativo de tu máquina y el de tu hosting, que por ahí pueden ir los tiros, de momento prueba a cambiar esto...

Código PHP:

set_include_path($_SERVER['DOCUMENT_ROOT'] . PATH_SEPARATOR '/libs_php/adodb5'); 

Si nada tiene que ver con eso, una vez nos digas los sistemas operativos, intentamos otras soluciones.

Suerte.

keyboy 23-01-2008 21:58:17

Para mostrar los errores no basta ajustar error_reporting a E_ALL, sino que hay que poner display_errors en on:

Código PHP:

ini_set('display_errors'1); 

tal como apunta Mick, pero no todos los proveedores habilitarán el uso de archivos .htaccess, así que puede intentar ponerlo en el mismo script.

Bye

lucasarts_18 24-01-2008 15:01:34

Cita:

Empezado por keyboy (Mensaje 260362)
Para mostrar los errores no basta ajustar error_reporting a E_ALL, sino que hay que poner display_errors en on:


bueaaaaa, ahora aparecen los errores, por fin, ya estaba desesperandome con esto de los hosting (es mi primera vez......:D, antes había desarrollado php solo en intranet) gracias....keyboy y a todos los compañeros que intentaron ayudar.

Cita:

Empezado por emilio
Deberías indicar el sistema operativo de tu máquina y el de tu hosting, que por ahí pueden ir los tiros, de momento prueba a cambiar esto...

Yo desarrollo php con Window XP SP2, y el hosting tiene linux redhat enterprise edition.

Ahora veré que puedo hacer con ese error.

Hasta luego .-

lucasarts_18 24-01-2008 15:10:37

Olvidé poner el error que me genera.

aquí va.

Código:

Warning:  conectar(adodb.inc.php) [function.conectar]: failed to open stream: No such file or directory in /home2/gvm/public_html/includes/funciones.php on line 71

Warning:  conectar(adodb.inc.php) [function.conectar]: failed to open stream: No such file or directory in /home2/gvm/public_html/includes/funciones.php on line 71

Warning:  conectar() [function.include]: Failed opening 'adodb.inc.php' for inclusion (include_path='/home2/gvm/public_html:/libs_php/adodb5/') in /home2/gvm/public_html/includes/funciones.php on line 71

Fatal error:  Call to undefined function:  adonewconnection() in /home2/gvm/public_html/includes/funciones.php on line 73

este error sale con el path_separator que propuso emilio, sin él, aparece el siguiente mensaje.

Código:

Parse error: syntax error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home2/gvm/public_html/libs_php/adodb5/adodb.inc.php on line 336
¿Podría ser que ADODB no corra con PHP 4.4.7 ?

Hasta Luego .-

Emilio 24-01-2008 17:22:52

Cita:

Empezado por lucasarts_18 (Mensaje 260545)
¿Podría ser que ADODB no corra con PHP 4.4.7 ?

Vaya, esta vez acerté, viendo que conectabas mediante ADO supuse que en uno había Windows y en el otro Linux.

Es mejor que te olvides de ADO, te será mucho más fácil instalar MySQL en Windows que ADO en Linux, suponiendo que tienes el control del servidor Linux, pienso que no.

Te recomiendo instalar MySQL en tu Windows y conectar de la misma forma que en Linux, tal que así....

Código PHP:

mysql_connect$DB_HOST$DB_USER$DB_PASS ) or die ( 'No puedo conectar al servidor.' );
mysql_select_db$BASE_DE_DATOS ) or die ( 'No puedo seleccionar la base de datos.' );

$sql     "SELECT * FROM TABLA WHERE bla bla...";
$result  mysql_query$sql );


while ( 
$row mysql_fetch_array$result ) ) {
    echo 
$row["campo1"], $row["campo2"]."<br>";



lucasarts_18 24-01-2008 19:28:46

Emilio gracias por tu sugerencia, pero ya he resuelto el problema, estaba trabajando con la versión exclusiva para php 5 de AdoDB, ahora descargue la versión compatible con php 4 y todo funciona de maravilla, gracias.

Hasta Luego .-

Emilio 24-01-2008 20:46:09

Cita:

Empezado por lucasarts_18 (Mensaje 260649)
Emilio gracias por tu sugerencia, pero ya he resuelto el problema, estaba trabajando con la versión exclusiva para php 5 de AdoDB, ahora descargue la versión compatible con php 4 y todo funciona de maravilla, gracias.

:confused::confused::confused:

Vaya, pensaba que estabas totalmente perdido, ahora el que está confundido soy yo, me gustaría saber que ventaja tiene usar ADO especialmente en Linux?

Por otra parte parece ser que tienes acceso root al server para hacer eso ¿cierto?

fide 25-01-2008 15:47:01

El ado es good, pero creo que en linux no me hace nada de gracia usarlo!
Viva MySql

lucasarts_18 25-01-2008 22:04:58

Cita:

Empezado por Emilio (Mensaje 260679)
:confused::confused::confused:

Vaya, pensaba que estabas totalmente perdido, ahora el que está confundido soy yo, me gustaría saber que ventaja tiene usar ADO especialmente en Linux?

Hola Emilio, no sé por qué vinculas a ADOdb a windows :eek:, ADOdb es una líbrería de abstracción de base de datos escrita en php (corre en linux, windows y en cualquier Sistema Operativo donde pueda montarse un servidor web que soporte php), esta librería es similar a las que tiene Pear, PDO y otras que andan dando vuelta por ahí. Te permite crear SQL "portable" entre distintas base de datos, lo puse entre comillas porque depende del programador de usar el SQL-92 compatibles en casi todos los BD.

Si estoy equivocado me avisan, pero eso creo yo, en estos momentos las consultas me corren bien tanto en mi PC con en Windows como en el hosting con linux.

Hasta Luego .-

Emilio 25-01-2008 22:22:28

Cita:

Empezado por lucasarts_18 (Mensaje 261023)
Hola Emilio, no sé por qué vinculas a ADOdb a windows :eek:, ADOdb es una líbrería de abstracción de base de datos escrita en php

Ah!!!, y yo preguntándote si tienes acceso root al servidor :D

Ahora si me queda claro el asunto, evidentemente ni sabía que existía ese AdoDB, fíjate como pueden llegar a liarse las cosas, en fin, gracias por aclararlo.

gusjarrin 14-10-2011 02:12:00

Cita:

Empezado por lucasarts_18 (Mensaje 260649)
Emilio gracias por tu sugerencia, pero ya he resuelto el problema, estaba trabajando con la versión exclusiva para php 5 de AdoDB, ahora descargue la versión compatible con php 4 y todo funciona de maravilla, gracias.

Hasta Luego .-

lucasarts_18...se q es un tema viejo, pero tengo el mismo problema, solo que mi adodb5 funcionaba perfectamente y de buenas a primeras ya no se conecta mas. Utilizo postgres, mi hosting tiene centos5 y php5.2. No ha habido cambios en esta configuracion, no se x q ya no se conecta a la bdd, se queda en blanco...

Mil gracias por cualquier ayuda


La franja horaria es GMT +2. Ahora son las 23:09:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi