Foros del Web » Programando para Internet » PHP »

Dudas sobre funcionamiento de los Includes.

Estas en el tema de Dudas sobre funcionamiento de los Includes. en el foro de PHP en Foros del Web. Muy buenas, estoy haciendo un php, donde simplemente llamo a dos funciones, Conectarse() y Desconectarse(). Ambas funciones se encuentran dentro un directorio, al cual hago ...
  #1 (permalink)  
Antiguo 28/06/2006, 05:30
Avatar de crcbad  
Fecha de Ingreso: enero-2005
Mensajes: 302
Antigüedad: 19 años, 3 meses
Puntos: 0
Dudas sobre funcionamiento de los Includes.

Muy buenas, estoy haciendo un php, donde simplemente llamo a dos funciones, Conectarse() y Desconectarse(). Ambas funciones se encuentran dentro un directorio, al cual hago referencia con include("inc/conexion.php").

Dentro de este fichero tengo la típica rutina de conexión y desconexión a una base de datos MySQL:

Código PHP:
$link 0;
function 
Conectarse()
{
include(
"configvars.php");
 
if (!(
$link=mysql_connect($servidorBD,$nomAdminBD,$pasAdminBD))) 
{
echo 
"<h1>Imposible conectar con la base de datos</h1>";
exit();
}
 
if (!
mysql_select_db($nombreBD,$link)) 

echo 
"<h1>ERROR 3: Imposible seleccionar la Base de Datos</h1>";
exit(); 

 
else
echo 
"<h1>Conectado!</h1>";
 
return 
$link;
}
function 
Desconectarse()
{
// Cierra la conexion 
if(!mysql_close($link))
echo 
"<h1>Error durante la desconexión de la base de datos!</h1>";
else
echo 
"<h1>Desconectado!</h1>";


Mis dudas son las siguientes:

1. Hay alguna forma de hacer dentro de este fichero de conexión para que el include que hago de include("configvars.php"); afecte a TODAS las funciones php que tengo en ese documento? Es decir, si ese include lo pongo fuera de la función, la función no puede hacer uso de las variables que tiene el fichero del include, hay alguna forma de subsanar esto?.

2. Parecida a la anterior, tengo declarada la variable $link donde teóricamente, es global para todo el documento php, donde después de haber usado la función Conectarse() debería guardar el valor resultante de la conexión, para luego poder usar esa variable global dentro de la función Desconectarse() para realizar la desconexión. Pues bien, por algún motivo, esto no funciona, por què puede ser? O como podría definir variables globales para usar su valor en las funciones de este documento php?.

Menuda charla

Gracias a los que me puedan aportar algo de ayuda en estas dos cosillas ;)
__________________

:cool: [ http://eruben.sytes.net ] :cool:


Las dos frases que te ayudarán a salir adelante:
  • No hay mujer fea, solo copas de menos. :borracho:
  • Ante la duda, siempre coge la más tetuda. :arriba:
  #2 (permalink)  
Antiguo 28/06/2006, 05:36
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 4 meses
Puntos: 1
Usa a fuera el require(), a ver como te va

Chao
__________________
Miguel Padrón :cool:
  #3 (permalink)  
Antiguo 28/06/2006, 05:40
Avatar de crcbad  
Fecha de Ingreso: enero-2005
Mensajes: 302
Antigüedad: 19 años, 3 meses
Puntos: 0
Ocurre lo mismo usando tanto include como require fuera de la función, las variables no son reconocidas desde dentro de la función:

Notice: Undefined variable: servidorBD in C:\ibi\DevStudio53\ibi_html\foro\inc\conexion.php on line 9

Notice: Undefined variable: nomAdminBD in C:\ibi\DevStudio53\ibi_html\foro\inc\conexion.php on line 9

Notice: Undefined variable: pasAdminBD in C:\ibi\DevStudio53\ibi_html\foro\inc\conexion.php on line 9

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\ibi\DevStudio53\ibi_html\foro\inc\conexion.php on line 9
__________________

:cool: [ http://eruben.sytes.net ] :cool:


Las dos frases que te ayudarán a salir adelante:
  • No hay mujer fea, solo copas de menos. :borracho:
  • Ante la duda, siempre coge la más tetuda. :arriba:
  #4 (permalink)  
Antiguo 28/06/2006, 05:53
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 4 meses
Puntos: 1
Y si recoge esas variables dentro de la funcion y las convierte en globales, busca en este foro la palaba GLOBALES a ver que te sugiere
__________________
Miguel Padrón :cool:
  #5 (permalink)  
Antiguo 28/06/2006, 06:08
 
Fecha de Ingreso: julio-2005
Mensajes: 4
Antigüedad: 18 años, 9 meses
Puntos: 0
"1. Hay alguna forma de hacer dentro de este fichero de conexión para que el include que hago de include("configvars.php"); afecte a TODAS las funciones php que tengo en ese documento? Es decir, si ese include lo pongo fuera de la función, la función no puede hacer uso de las variables que tiene el fichero del include, hay alguna forma de subsanar esto?."

tenes un problema de resolucion de algoritmo, no es la forma indicada de hacer una estructura de scritps,, de todos modos lo de las variables se soluciona con global, aunque no recomiendo usar variables globales a discresion ,, mas info php.net
  #6 (permalink)  
Antiguo 28/06/2006, 06:34
Avatar de crcbad  
Fecha de Ingreso: enero-2005
Mensajes: 302
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola riggen, gracias por tu comentario, con la directiva GLOBALS las variables ya van correctamente, y sí, tienes razón, puede ser algo inseguro usarlas, solo las usaré cuando sea estrictamente necesario.

Para lo otro, a que te refieres con un problema de algoritmo? Es decir, eso es lo que quiero hacer, esa pequeña rutina, como la harías para con el finl de no poner las funciones manualmente en todos los ficheros php que requieren conectarse a la base de datos?.

Saludos
__________________

:cool: [ http://eruben.sytes.net ] :cool:


Las dos frases que te ayudarán a salir adelante:
  • No hay mujer fea, solo copas de menos. :borracho:
  • Ante la duda, siempre coge la más tetuda. :arriba:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:42.