Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: eduardsoft en 21 Julio 2007, 19:16 pm



Título: Problemas con el Include
Publicado por: eduardsoft en 21 Julio 2007, 19:16 pm
tengo este codigo :
include ("Conexion.php");
paises();
  $consulta = "Select trim(zon_codigo),zon_descripcion
                from sim_zona where pai_codigo ='$pais' order by zon_codigo";
               

En la consulta utilizo una variable llamada pais que esta en la funcion pais inlucida en el archivo conexion.php
por que esa variable me llega nula ???? :(


Título: Re: Problemas con el Include
Publicado por: Nakp en 21 Julio 2007, 19:50 pm
pais va sin ' ' y usa geshi ;)

salu2


Título: Re: Problemas con el Include
Publicado por: Ertai en 22 Julio 2007, 01:03 am
En la función has de poner:

Código
  1. global $pais;
  2.  

Antes de usarla.

Saludos.


Título: Re: Problemas con el Include
Publicado por: eduardsoft en 24 Julio 2007, 17:24 pm
ok lo de las comillas en pais ya paso , pero no he podido comprender lo de las global en un 100%


Título: Re: Problemas con el Include
Publicado por: eduardsoft en 24 Julio 2007, 17:33 pm
gracias por hecharme una mano .

lo que trato de hacer es una funcion que me hace la conexion, esto es oracle

creo la funcion conexion ahi se hace una variable , bueno mas o menos asi

if ($c=oci_connect($nombre, $contrasena, "BASE_DE_DATOS")) {
       echo "Successfully connected to Oracle .\n";
      ($c);

todo bien hasta ahi,

pero como uso un include en otra pagina para llamar a esta funcion yo asumo que la variable ($c); esta disponible en esa pagina pero me dice que declare esa variable,

por que declararla si ya esta en la funcion ?


pienso que no es necesario por que esta presente en la funcion la cual es parte de mi pagina me funciona


No he podido entender el ambito de este tipo de variables , esta terrible..... :-\


Título: Re: Problemas con el Include
Publicado por: Sanjuu en 24 Julio 2007, 17:46 pm
No logro entenderte del todo pero supongamos lo siguiente:

Fichero conex.php
Código
  1. function Conectar(){
  2.   if ($c=oci_connect($nombre, $contraseña, "BASE_DE_DATOS"))
  3.       echo "Successfully connected to Oracle .\n";
  4.  
  5.   return $c;
  6. }
  7.  

Si estamos en este caso la variable $c pertenece al ambito de la función Conectar del fichero conex.php por lo que no tendrás disponible esa variable fuera de la función, por lo tanto tampoco la tendrás disponible despues de hacer el include, para poder usarla deberías asignarla al llamar la funcion Conectar, por ejemplo:

Código
  1. $conex = Conectar();
  2.  

Y finalmente:
Código
  1. include ("Conexion.php");
  2. //...
  3. // Usamos la variable $conex
  4.  

La solución de Ertai también es válida pero el uso de variables globales no es recomendable a no ser que no haya más remedio, la modularidad de php de por sí es poca, si usas globales la estas machacando por completo.