Foros del Web » Programando para Internet » PHP »

Duda con include

Estas en el tema de Duda con include en el foro de PHP en Foros del Web. Hola: Tengo dos scripts. Uno se llama config.inc.php y el otro functions.inc.php. En el config pongo las variables que voy a usar previamente en el ...
  #1 (permalink)  
Antiguo 23/01/2004, 00:04
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Duda con include

Hola:
Tengo dos scripts. Uno se llama config.inc.php y el otro functions.inc.php. En el config pongo las variables que voy a usar previamente en el functions el codigo del config es este:
Código PHP:
 <?PHP
 
/***********************************************************
 **          Programado y Diseñado por:                    **
 **             Reynier Pérez Mira                         **
 **  Universidad de las Ciencias Informáticas              ** 
 **           E-Mail: [email][email protected][/email]                       ** 
 ** Sitio: [url]http://usuarios.lycos.es/reynierpm/index.php[/url]    **
 ***********************************************************/
 
 //Configuración de variables
  
 //Inicializamos las variables
 
$servidor_db "10.7.13.2";
 
$usuario_db "root";
 
$passwd_db "";
 
$database "reynierpm_es_db";
?>
y el del functions es el siguiente
Código PHP:
 <?PHP
 
/***********************************************************
 **          Programado y Diseñado por:                    **
 **             Reynier Pérez Mira                         **
 **  Universidad de las Ciencias Informáticas              ** 
 **           E-Mail: [email][email protected][/email]                       ** 
 ** Sitio: [url]http://usuarios.lycos.es/reynierpm/index.php[/url]    **
 **********************************************************

 * @return void
 * @param $tipo string
 * @desc Function that connect to database server
 */
 
require("config.inc.php");
 function 
conectarmedb($tipo){
  
     if (
$tipo == "mysql"){
         
$identificador mysql_connect($servidor_db,$usuario_db,$passwd_db) or die("No se ha podido establecer la conexión con el servidor de Bases de Datos: ".$servidor_db."en estos momentos.<br>MySQL ha dicho:".mysql_error());
         
mysql_select_db($database,$identificador) or die("No se ha podido establecer la conexión con la Bases de Datos: ".$database."en estos momentos.<br>MySQL ha dicho:".mysql_error());
     }elseif(
$tipo == "mssql"){
         
$identificador mssql_connect($servidor_db,$usuario_db,$passwd_db) or die("No se ha podido establecer la conexión con el servidor de Bases de Datos: ".$servidor_db."en estos momentos.<br>MS SQL Server ha dicho:".mssql_get_last_message());
         
mssql_select_db($database,$identificador) or die("No se ha podido establecer la conexión con la Bases de Datos: ".$database."en estos momentos.<br>MS SQL Server ha dicho:".mssql_get_last_message());
     }elseif(
$tipo "oracle"){
         
$identificador ora_logon($usuario_db,$passwd_db) or die("No se ha podido establecer la conexión con el servidor de Bases de Datos: ".$servidor_db."en estos momentos.<br>Oracle ha dicho:".ora_error());
         
mysql_select_db($database,$identificador) or die("No se ha podido establecer la conexión con la Bases de Datos: ".$database."en estos momentos.<br>Oracle ha dicho:".ora_error());
     }
 }
?>
el problema es que no me esta cogiendo las variables que estan en config y por lo tanto me da errores a la hora de llamar la funcion me devuelve que no se puede conectar a la BD
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 23/01/2004, 00:42
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 13 años, 10 meses
Puntos: 6
require("config.inc.php");

prueba kon include("config.inc.php");
__________________
El que teme preguntar, se averguenza de aprender.
  #3 (permalink)  
Antiguo 23/01/2004, 01:18
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Ya lo probe

Sigue igual
__________________
Ing. Reynier Pérez Mira
  #4 (permalink)  
Antiguo 23/01/2004, 07:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El problema que tienes es por el "ambito" (scope) de las variables ..

En una función .. salvo que le pases como parámetor las variables a usar .. o las declares como globales NO son globales por defecto.

Así que esas variables que tienes en tu config.php .. nunca vas a poder leerlas desde funciones como la que tienes ahí.

Más info:
http://www.php.net/manual/en/languag...bles.scope.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 23/01/2004, 09:41
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
El script original lo tenia así

El script original lo tenía de esta forma:
Código PHP:
 <?php
 
//Configuración de variables
 
 
global $servidor_db$usuario_db$passwd_db,$database
 
//Inicializamos las variables
 
$servidor_db "10.7.13.2";
 
$usuario_db "root";
 
$passwd_db "";
 
$database "reynierpm_es_db";
?>
y tampoco me funcionaba. No se que sea eso.
__________________
Ing. Reynier Pérez Mira
  #6 (permalink)  
Antiguo 23/01/2004, 09:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
(Parece que no leistes el link que dejé ¬¬)

Las variabels globales con "global" se declaran DENTRO de la función que las tenga que usar .. no "fuera" de la función .. O bien se las pasas como parámetro.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 23/01/2004, 10:42
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Gracias Cluster

Gracias en verdad me tiré a lo loco y no leí el hilo que me dejastes. Ya aprendí que debo leer antes de preguntar.

Salu2
__________________
Ing. Reynier Pérez Mira
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 16:19.