Foros del Web » Programando para Internet » PHP »

Pasar Variables Por Include

Estas en el tema de Pasar Variables Por Include en el foro de PHP en Foros del Web. Hola: estoy teniendo problemas para pasar variables por este tipo de includes que uso en forma modular El codigo: Código PHP: <?php switch( $articulos )  ...
  #1 (permalink)  
Antiguo 19/08/2004, 17:50
 
Fecha de Ingreso: junio-2004
Mensajes: 101
Antigüedad: 15 años, 6 meses
Puntos: 0
Exclamación Pasar Variables Por Include

Hola:

estoy teniendo problemas para pasar variables por este tipo de includes que uso en forma modular

El codigo:
Código PHP:
<?php
switch($articulos

default: 
include(
'articulos/xml_articulos.php'); 
break; case 
"IP037"
include(
'articulos/masarticulos.php?mostar=37');
}
donde la pagina mostrararticulos.php hago una consulta a mi BD buscando el id=$mostrar
en la consulta no hay problemas se mustra sin problemas

Pero cuando se carga la direcion de la consulta con el include , es decir

www.miweb.net?articulos=IP037
me muestra error en la ruta
articulos/masarticulos.php?mostar=37

no logro pasar la variable y que me reconozco la ruta........
como le hagoo

Saludos
  #2 (permalink)  
Antiguo 19/08/2004, 18:19
Avatar de sir_notos  
Fecha de Ingreso: noviembre-2001
Ubicación: Mexicali
Mensajes: 709
Antigüedad: 18 años
Puntos: 1
Asi a grandes rasgos y sin ver codigo .... pues lo unico que se me ocurre es que tengas register_global = off

para hacerlo como se deve usa el array $_GET :)


Tembien puedes poner as


Código PHP:
... 
case: 
'IPO37'
$articulo 37;
include(
'mostrararticulo.php');
break; 
y asi si podrias hacer el query where tal = $articulo :)
__________________
Usuario Registrado de linux #374849

Última edición por sir_notos; 19/08/2004 a las 18:23
  #3 (permalink)  
Antiguo 19/08/2004, 18:32
 
Fecha de Ingreso: junio-2004
Mensajes: 101
Antigüedad: 15 años, 6 meses
Puntos: 0
Exclamación

Cita:
Iniciado por sir_notos
Asi a grandes rasgos y sin ver codigo .... pues lo unico que se me ocurre es que tengas register_global = off

para hacerlo como se deve usa el array $_GET :)


Tembien puedes poner as


Código PHP:
... 
case: 
'IPO37'
$articulo 37;
include(
'mostrararticulo.php');
break; 
y asi si podrias hacer el query where tal = $articulo :)
si el valor a la variable $articulo=37 pero donde pasas la variable a la pagina
mostrararticulos.php en mi caso masarticulos.php


necesito pasar la variable para poder hacer la consulta a la BD de datos
include('masarticulos.php?mostrar=37');
el caso es que no me deja
y si lohace cuando le doy a ruta directamente en el navegador, asi:

miweb.net/articulos/masarticulos.php?mostar=37

Espero haberme explicado mejor y puedan ayudarme
  #4 (permalink)  
Antiguo 19/08/2004, 19:18
 
Fecha de Ingreso: diciembre-2003
Mensajes: 18
Antigüedad: 16 años
Puntos: 0
Me parece que tu problema es un error de concepto.

Si he entendido bien, lo que quieres "incluir" a tu página, cuando $articulos vale "IP037", es la salida html que genera el script "articulos/masarticulos.php" cuando la variable $_GET['mostar'] vale 37.

Ahora bien, la funcion include no está hecha precisamente para esto.

Include() "incluye" el script "articulos/masarticulos.php" de manera local, NO abre una conexion http. En lenguaje simple y llano, lo que "incluye" include() es el código fuente php y no la salida html generada por ese código.

Y el error que aparece es lógico porque seguramente no existe un archivo llamado "articulos/masarticulos.php?mostar=37" (el archivo que si existe se llama "articulos/masarticulos.php").

Creo que una posible solucion es captar la salida mediante un

echo fread(fopen("articulos/masarticulos.php?mostar=37", "r"), filesize("articulos/masarticulos.php"));

otra podria ser

switch($articulos){
case "IP037":
$_GET['mostrar'] = 37; //o quizas $mostar = 37;
include("articulos/masarticulos.php");
break;
default:
...
}
Saludos!

Última edición por onores; 19/08/2004 a las 19:25
  #5 (permalink)  
Antiguo 19/08/2004, 21:56
Avatar de sir_notos  
Fecha de Ingreso: noviembre-2001
Ubicación: Mexicali
Mensajes: 709
Antigüedad: 18 años
Puntos: 1
Cita:
Iniciado por onores

switch($articulos){
case "IP037":
$_GET['mostrar'] = 37; //o quizas $mostar = 37;
include("articulos/masarticulos.php");
break;
default:
...
}
Saludos!
Exacto
al definir un
Código PHP:
$foo 45;
include(
'test.php'); 
la variable $foo estara "disponible" en test.ph

chekate esta parte del manual

http://php.net/variables.scope
__________________
Usuario Registrado de linux #374849
  #6 (permalink)  
Antiguo 20/08/2004, 00:32
AKB
 
Fecha de Ingreso: agosto-2004
Mensajes: 52
Antigüedad: 15 años, 3 meses
Puntos: 0
Me parece una forma muy poco eficiente de hacer eso.. seria necesario meter miles de cases según aparecen nuevos articulos o lo que sea... no es mejor simplemente...
<?
include("articulos/masarticulos.php");
?>

Y DENTRO del masarticulos.php hacer la consulta asi...

"Select * from articulos where articulo=".$articulos

?

O si no sacas el contenido de la bd sino de ficheros por ejemplo html...

<?
include("articulos/".$articulo.".html");
?>

¿?
  #7 (permalink)  
Antiguo 20/08/2004, 00:47
Avatar de sir_notos  
Fecha de Ingreso: noviembre-2001
Ubicación: Mexicali
Mensajes: 709
Antigüedad: 18 años
Puntos: 1
pensandolo bien lo idel seria que escribieras tu masarticulos.php para que a la hora de incluirlo tomara el valor de GET
Ejmeplo

si llamas a tu pagina

http://www.web.com/index.php?modulo=articulos&id=45

sql

select * from table where id=$_GET[id]
__________________
Usuario Registrado de linux #374849
  #8 (permalink)  
Antiguo 20/08/2004, 11:13
 
Fecha de Ingreso: junio-2004
Mensajes: 101
Antigüedad: 15 años, 6 meses
Puntos: 0
Hola:

Es cierto lo que dice onores pues el include al incluir la pagina no reconoceria las variables que se pasen sin embargo hay formas de solucionar el problema planteado.
Todas las propuestas me parecen validas pero sera cuestion de probarlas y veremos como va
Probare algunas soluciones incluyendo mi propia solucion

Gracias por responder
  #9 (permalink)  
Antiguo 06/06/2008, 18:03
 
Fecha de Ingreso: diciembre-2007
Mensajes: 110
Antigüedad: 12 años
Puntos: 1
Respuesta: Pasar Variables Por Include

Cita:
Iniciado por sir_notos Ver Mensaje
Exacto
al definir un
Código PHP:
$foo 45;
include(
'test.php'); 
la variable $foo estara "disponible" en test.ph
Perdon por revivir este topic.


Esto que decias me funcionaba hasta hace unss semanas, pero no se por que ahora no ya no funciona mas...al hacer eso el valor de $foo cuando se ejecuta test.php es null

hay alguna solucion?


Gracias, saludos
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 19:17.