Foros del Web » Programando para Internet » PHP »

Include con argumentos ¿por que falla?

Estas en el tema de Include con argumentos ¿por que falla? en el foro de PHP en Foros del Web. Hola a todos: estoy intentando llamar con un include con argumentos a una pagina y me da el siguiente error (que no comprendo, por desgracia): ...
  #1 (permalink)  
Antiguo 16/06/2003, 06:02
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 5 meses
Puntos: 0
Include con argumentos ¿por que falla?

Hola a todos:

estoy intentando llamar con un include con argumentos a una pagina y me da el siguiente error (que no comprendo, por desgracia):

Warning: open_basedir restriction in effect. File is in wrong directory in .....index.php on line 123

Warning: Failed opening 'info.php?id=&indice=' for inclusion (include_path='.:/usr/share/pear') in ......index.php on line 123

os adjunto el switch donde voy haciendo las llamadas:

Código PHP:
<?
$id
=$_GET['id'];
$indice=$_GET['indice'];

switch (
$id){

    case 
1:
        include(
"pagina1.php");
        break;
    case 
2:
        include(
"pagina2.php");
        break;
    case 
valor:
        include(
"info.php?id='$ind'&indice='$indice'");
        break;
    default:
        include(
"default.php");
}

?>

el error, por supuesto, me lo da en el case valor

¿que hago mal?

Gracias con antelacion
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.


Última edición por sgafo; 16/06/2003 a las 06:06
  #2 (permalink)  
Antiguo 16/06/2003, 06:49
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

El problema es que no se pueden especificar parametros por URL (GET) mediante un include() cuando especificas una ruta. Si lo que quieres es incluir el HTML generado por un PHP, debes especificar la URL completa (siempre y cuando PHP tenga activado los wrappers):
Código PHP:
include("http://www.dominio.com/info.php?id='$ind'&indice='$indice'"); 
Si lo que quieres es incluir el codigo PHP y que se ejecute, en tu caso simplemente:
Código PHP:
include("info.php"); 
ya que en info.php accedes a las variables (incluido $_GET y $_POST) que tienes en el fichero que lo incluye.

La razon de que te de fallo es que no existe un fichero que se llame 'info.php?id=&indice=' tal cual.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 16/06/2003, 08:11
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 5 meses
Puntos: 0
si, lo cierto es que tiene logica lo que cuentas, ademas de que funciona

muchas gracias, josemi

por cierto: ¿la pagina de tu firma es tuya? ¿y responde a dudas tan simples como la mia?
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #4 (permalink)  
Antiguo 16/06/2003, 08:34
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
No es por logica, es como dice el manual que funciona

Si, el pseudo-articulo es mio (a ver cuando lo actualizo), y pretende mas enseñar a localizar errores que solucionar problemas concretos. En particular estos de los includes no los meto. Soy de los que piensan que sabiendo lo que significa el error, conociendo el lenguaje y acudiendo al manual es posible localizar exactamente la causa del error. Y conocida la causa, es muchisimo mas facil solucionar el error.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 16/06/2003, 20:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Así es josemi ..

Lo importante sería recalcar que "En el mensaje de error .. está la solución" xDDD .. (y si no ves el mensaje de error usa error_reporting(E_ALL) jejeje ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 17/06/2003, 01:12
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 5 meses
Puntos: 0
que crueles sois con los novatos, caray...
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #7 (permalink)  
Antiguo 17/06/2003, 01:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Jejej sgafo .. a todos nos ha pasado. Por eso (bajo mi experiencia personal) digo la frase esa .. por qué al final de romperme la cabeza con "será esto?" o .. "será lo otro?" me he dado cuenta que la solución en la mayoría de casos (ante un error) era justametne "leer" que mensaje de error me está dando y de ahí .. al manual de PHP a ver o incluso usar google y poner la frase del "error" (a veces dá buenos resultados, pues te salen foros como estos con preguntas similares .. o te salen unas FAQ's por ahí .. etc ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 17/06/2003, 01:41
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 5 meses
Puntos: 0
tomando nota...

gracias Cluster
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #9 (permalink)  
Antiguo 17/06/2003, 08:08
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
No creo que seamos crueles (bueno, yo si lo soy, pero no tanto). El problema es que si simplemente te resolvemos las dudas segun te van saliendo, ¿que haras un dia que no tengas internet? Por eso creo que parte importante del aprendizaje es aprender a identificar los errores. Una vez que lo has identificado, sabes por donde puede ir la solucion, e investigar por ese camino. Por supuesto, dentro de esa investigacion puede estar preguntar en los foros. Pero esta claro que es mucho mejor preguntar "Include con argumentos ¿por que falla?" que "no me funcionan los include". No digo que tengas que saber como se soluciona todo, pero si saber que falla y por que, asi entenderas mejor la respuesta.

Es por eso que procuro poner una explicacion o un link a la explicacion o las razones por las que falla. Y a veces me veo "obligado" a poner codigo como ejemplo o como explicacion. Es mas, muchas veces el codigo que pongo es la peor solucion en cuanto optimizacion, pero es la mas clara de entender.

Comprendo que desde el punto de vista del que esta aprendiendo puedo parecer cruel, pero es porque creo que es por vuestro bien

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #10 (permalink)  
Antiguo 17/06/2003, 08:23
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 5 meses
Puntos: 0
veo que me faltaron las comillas antes y despues de crueles... aun asi reconozco que os "utilizo" (ahora si) para que me ayudeis a solucionar mis problemas, ya que no soy muy buena autodidacta

veamos: se supone que todas estas dudas tienen su respuesta en www.php.net?

si no es asi, te agradeceria que me remitieses al lugar indicado (preferiblemente en ingles)
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #11 (permalink)  
Antiguo 17/06/2003, 11:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues el 90% sí .. en php.net tendrás respuestas (y en ingles está más actualizado) ..

Pero lo principal es saber que es cosa de "PHP" y que es de algo relacionado ..

Por supuesto también saber distinguir que es cosa del "Cliente" (javascript/HTML.. etc) y que es cosa del "Servidor" (PHP, acceso a BD .. a archivos en el servidor .. etc ..)

Ejemplo .. Problemas con "rutas" de archivos .. depende del sistema de archivos del sistema operativo que trabajes .. Windows por ejemplo no tiene ningún problema a ese nivel . pero linux dispone de "permisos" de escritura .. "de usuarios" y demas historias .. Así que si eso no lo sabes .. cuando te aparezca un error al respecto no vas a saber la solución. Esto no quiere decir que tengas que ser un experto en "Linux" para programar PHP .. pero si que saber que cuando accedes al S.O. para ciertas taréas como las de leer/escribir archivos .. ahí hay un punto muy importante que es conocer el S.O. que trabajas .. De todas formas .. una vez q tengas ese típo de errores y (aquí por ejemplo) se te explique el problema (no darte la solución simplemente .. pues sinó nunca lo entenderas ..) ya tendras algo más aprendido ..

Otros temas que se "usan" con PHP pero no son própios de PHP son por ejemplo el SQL .. el lenguaje de consultas que se usa para acceder a datos de tu BD (sea Msyql o la que corresponda) .. PHP te pone a tu disposición funciones para "interactuar" con esa BD .. por ejemplo mysql_connect("..") .. pero de ahí .. lo q vá entre "comillas" es SQL y eso es própio de la BD que trabajes ...

Otro ejemplo .. "expresiones regulares" .. Idem, PHP te pone a tu disposición funciones para usarlas .. Cómo implementes tus expresiones regulares ya no es téma de PHP.

Y así con un largo etc. .. (sockets .. cabeceras HTTP ...)

Cuanto más sepas como funciona PHP .. mejor podrás enfocar tus preguntas o tu busqueda de información ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 17/06/2003, 12:44
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 5 meses
Puntos: 0
bueno... quedate con que por lo menos intento resolver las dudas antes de insertar una pregunta, y cuando lo hago tambien pretendo que el mensaje sea claro y proporcione suficiente informacion

en serio que si...
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

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 02:31.