Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-07-2007
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
Problema con include en php 5.2

Tengo un servidor wamp5 1.7.2 sobre windows xp y un script en el que defino las variables de conexión a la base de datos firebird 1.5
cfg.php
Código:
$fic = '192.168.4.1:/home/datos/base.ltx';
$usu = 'SYSDBA';
$pas = 'masterkey';
en un script que muestra información de esa base de datos hago un include del cfg.php y compruebo que tengo los valores de conexión
Código:
        include("cfg.php");
	if (!isset($usu)) {
	  echo ('Non existe usu <br>');	
	 } else {
	  echo '>>>>'.$usu.'<br>';	
	 }
Pues bien, el isset da falso.
Alguien sabe que me puede estar pasando?
Responder Con Cita
  #2  
Antiguo 24-07-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¿Qué quieres decir que "el isset da falso"? ¿Qué se imprime en el Script? ¿Ese código está dentro de una función? ¿Existe el archivo "cfg.php"? Su ruta es relativa... ¿estás seguro de que existe en el contexto del Script en ejecución? Puedes comprobarlo con la función "file_exists()", por ejemplo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 24-07-2007
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
Cita:
Empezado por dec
¿Qué quieres decir que "el isset da falso"? ¿Qué se imprime en el Script? ¿Ese código está dentro de una función? ¿Existe el archivo "cfg.php"? Su ruta es relativa... ¿estás seguro de que existe en el contexto del Script en ejecución? Puedes comprobarlo con la función "file_exists()", por ejemplo.
Al hacer la comprobación "file_exists("cfg.php")" da verdadero, osea el fichero exite y se supone que existe en el contexto. Cuando digo que el isset da falso me refiero a que no existe la variable que se compruba, en este caso $usu y por lo tanto el script escribe: "Non existe usu".
Responder Con Cita
  #4  
Antiguo 24-07-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tal vez el código esté en una función, y, no estoy seguro, pero, de ser así, igual tienes que usar las variables de marras como globales, o sea, bien así:

Código PHP:
global $usu;
/* Ya puedes usar $usu */ 
O bien así:

Código PHP:
$GLOBALS['usu']; 
Pero,... me da que esto no va a tener que ver y el problema va a estar en otro lado... y no se me ocurre dónde ahora mismo...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 24-07-2007
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
Posteriormente utilizo esta variables en una función y es entonces cuanto utilzo el global, pero la compribación la hago inmediatamente despues del include y dentro del cuerpo prinicpal del script.
Código:
include("funcion.php");
include("cfg.php");

	if (file_exists("cfg.php"))  {
	  echo ('Existe cfg.php <br>');	      
	 } else {
	  echo '>>>> Non existe cfg.php<br>';
	 }

	if (!isset($usu)) {
	  echo ('Non existe usu <br>');	
	 } else {
	  echo '>>>>'.$usu.'<br>';	
	 }
y da como resultado que existe cfg.php y que no existe la variable $usu.
Este mismo script esta funcionando en una web en producción pero con la versión 5.0.5 de php. No sé si esto puede tener algo que ver.
Responder Con Cita
  #6  
Antiguo 24-07-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pues como no sea que en la función que dices que usas te estás "cargando" la variable... no lo entiendo, la verdad.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 24-07-2007
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
Tiene que ser un problema de mi instalación local. Algo debe de estar mal definido.
Voy a pelearme con ella y compararla con la instalación real haber si encuentro algo.
Gracias por la ayuda.
Responder Con Cita
  #8  
Antiguo 24-07-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Lo que puedo añadir es que acabo de probarlo con la última versión de PHP5, y, como esperaba, el asunto funciona bien. ¿Sabes qué? Podrías probar a partir de un principio. Es decir, como yo he hecho, dos sencillos archivos:

Código PHP:
<?php
  
// cfg.php

$usu 'SYSDBA';

?>
Código PHP:
<?php
  
// index.php

include('cfg.php');
echo 
$usu;

?>
Sitúas ambos archivos en el mismo directorio y... tiene que funcionar por narices... Si lo hace sabrás que el problema está en otro sitio, desde luego. Y si no funciona... definitivamente algo raro está pasando.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #9  
Antiguo 24-07-2007
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
Sabes cual era el problema....
En mis scripts, hechos hace tiempo utilizo <? para indicar el principio de codigo php y esta versión necesita que se le indique <?php
Voy a cambiar de profesión y dedicarme a algo que me mate menos, por ejemplo a vivir en una playa comiendo cocos.
Responder Con Cita
  #10  
Antiguo 24-07-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Hum... cocos...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #11  
Antiguo 24-07-2007
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
Smile

Gracias por la ayuda. Si recibes estos días un paquete con un par de cocos serán mios....
Responder Con Cita
  #12  
Antiguo 24-07-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno. No hay de qué. Yendo otra vez al asunto que nos ocupa... el tema está en que si no está activado el uso de "<?", ¡debería aparecerte algún error! Puesto que el archivo "incluído" no se procesaría como PHP y algo "extraño" debería ocurrir... creo yo. Así que vigila que tengas también el nivel de reportes de error apropiado.

Ya sabes que cuando se pone la aplicación "en producción", se suele usar el "error_reporting(0)", mientras que cuando estamos trabajando en la aplicación se utiliza "error_reporting(E_ALL)". Además también hay alguna opción de configuración en el archivo INI de PHP relacionada con esto.

Pero, vamos, que lo que dices de que el problema puede estar ahí... yo creo que sí, que tiene muchas papeletas para que sea así.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #13  
Antiguo 24-07-2007
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
Gracias por todo.
Responder Con Cita
  #14  
Antiguo 24-07-2007
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola:

Quiero agregar algo a todo lo dicho por nuestro gran compañero Dec, como bien dice Dec en entornos de producción se suele poner los reportes de errores en nulo, es decir la pantalla no notifica absolutamente nada, que para mí gusto no es conveniente, atenta con las buenas prácticas..., bueno pero este tema es otro asunto y es discutible de todas maneras, yo recomiendo poner al comienzo de los archivos php, los siguiente

Código PHP:
ini_set('error_reporting'E_ALL);
ini_set('display_errors','On'); 
Esto hace mostrar los errores aunque estén desactivados en el archivo INI del php.

Espero que sirva...

Hasta Luego .-
__________________
No todo es como parece ser...
Responder Con Cita
  #15  
Antiguo 24-07-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Interesante. Luego hay una opción de nombre "error_reporting"... hasta ahora pensaba que sólo existía "display_errors", y que "error_reporting" era la función de PHP, empero, si es como dices, Lucas, tendré que echarle un vistazo a esta nueva posibilidad, precisamente, porque estoy notando "cosas raras" con los errores en las pruebas que vengo haciendo con PHP5.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #16  
Antiguo 24-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Es lo mismo. La función error_reporting() hace lo mismo que ini_set('error_reporting', ...)

// Saludos
Responder Con Cita
  #17  
Antiguo 24-07-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pues voy a tener que probarlo, porque, como digo, con PHP5, estoy teniendo algún que otro problema, puesto que no muestra algunos errores... que debería mostrar, según yo, claro... Nunca te acostarás, sin saber una cosa más.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #18  
Antiguo 24-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Quizá te refieras a esto:

Cita:
Empezado por Manual de php
In PHP 5 a new error level E_STRICT is available. As E_STRICT is not included within E_ALL you have to explicitly enable this kind of error level. Enabling E_STRICT during development has some benefits. STRICT messages will help you to use the latest and greatest suggested method of coding, for example warn you about using deprecated functions.
// Saludos
Responder Con Cita
  #19  
Antiguo 24-07-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Hum... intuyo que no eso eso Román, pero, bien pudiera ser, por otro lado. Pero yo no hablo ahora de que "will help you to use the latest and greatest suggested method of coding", sino de errores de bulto, de errores que en PHP4 imprimirían un mensaje de error sí o sí.

Pero es posible que sea lo que dices Román. Tengo que hacer bastantes pruebas, supongo, así que veremos qué ocurre con este asunto.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #20  
Antiguo 24-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por dec
Hum... intuyo que no eso eso Román
Entonces quizá sea aquello aquello. ¿No podrías dar un ejemplo ejemplo concreto?

// Saludos Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Include files nested too deep gandalf_27 C++ Builder 1 25-06-2007 02:24:46
Duda sobre el INCLUDE() noshy PHP 2 04-02-2007 01:35:58
MySQL e Include, no me sale :( D-MO PHP 8 19-01-2006 19:14:52
Problemas con include() dape PHP 3 26-07-2005 04:02:41
"Include" en los formularios rafita Varios 7 14-04-2004 16:46:00


La franja horaria es GMT +2. Ahora son las 18:55:35.


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
Copyright 1996-2007 Club Delphi