Foros del Web » Programando para Internet » PHP »

Acerca de este error

Estas en el tema de Acerca de este error en el foro de PHP en Foros del Web. Hola amigos estaba haciendo paginas dinámicas y todo iba bien hasta que me sale este error Warning: include() [function.include]: Failed opening '/****/*****/public_html/Content/text_content.php?page=6' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') ...
  #1 (permalink)  
Antiguo 24/02/2012, 19:48
Avatar de Raian  
Fecha de Ingreso: febrero-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta Acerca de este error

Hola amigos estaba haciendo paginas dinámicas y todo iba bien hasta que me sale este error

Warning: include() [function.include]: Failed opening

'/****/*****/public_html/Content/text_content.php?page=6' for inclusion

(include_path='.:/usr/lib/php:/usr/local/lib/php') in

'/****/*****/public_html/Content/prueba.php on line 1

Entonces me pregunte los include no acepta pagina tipo ?page=6 y si es así como hacer para que logre funcionar?
  #2 (permalink)  
Antiguo 24/02/2012, 19:52
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Acerca de este error

Cuando haces un include/require todas las variables ANTES del include/require serán accesibles desde el archivo incluido, a su vez, todas las variables del archivo incluido serán accesibles DESPUES del include/require, así que no es necesario intentar pasar valores via get en el url del archivo a cargar
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 24/02/2012, 20:02
Avatar de Raian  
Fecha de Ingreso: febrero-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Acerca de este error

el problema es que intetaba hacer algo asi

Cita:
case "Text":
switch($_GET["id"]) {
case publications:
include("./text_content.php?page=6");
break;
default:
include("./Content/404.php");
break;
}
ya que si cargo ./text_content.php no hay nada pero cuando hay ./text_content.php?page=6 o 5 o cualquier número esta por decir un texto breve pero me da error y no se de que otra manera puedo hacer funcionar lo que hago
  #4 (permalink)  
Antiguo 24/02/2012, 20:07
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Acerca de este error

mmm creo que no entendiste lo que te puse anteriormente, no puedes agregar valores GET en un include/require, para comenzar no es necesario y por otro lado no es valido, porque no se hace una petición HTTP, si no que directamente se incluye el archivo, vamos como si hicieras un copy/paste... lo que quieres hacer esta demás. simplemente desde prueba.php crea la variable $page, y desde text_content.php lee dicha variable...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 24/02/2012, 20:08
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Acerca de este error

el problema debe de ser de rutas, estas seguro que estas colocandola bien?? como esta la estructura entre el archivo que incluyes y el archivo desde donde lo haces??

edit
totalmente cierto, ya que no esta siendo interpretada la url de esta, sino estas haciendo una inclusión de la misma, tendrías que obtener un id por $_GET desde la página que estas incluyendo, ejemplo
pagina_a_incluir.php
Código PHP:
Ver original
  1. $id = $_GET['id'];
  2. echo $id;
index.php
Código PHP:
Ver original
  1. echo "algo";
  2. require_once('pagina_a_incluir.php')
al entrar a http://index.php?id=1
que te da??, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Última edición por carlos_belisario; 24/02/2012 a las 20:18
  #6 (permalink)  
Antiguo 24/02/2012, 20:11
Avatar de Raian  
Fecha de Ingreso: febrero-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Acerca de este error

Cita:
Iniciado por Nemutagk Ver Mensaje
mmm creo que no entendiste lo que te puse anteriormente, no puedes agregar valores GET en un include/require, para comenzar no es necesario y por otro lado no es valido, porque no se hace una petición HTTP, si no que directamente se incluye el archivo, vamos como si hicieras un copy/paste... lo que quieres hacer esta demás. simplemente desde prueba.php crea la variable $page, y desde text_content.php lee dicha variable...
No tengo muchos conocimientos en php solo se editar algo, pero ahora si entendi lo que dijiste

pero como creo esa variable podria explicarme esa parte disculpa mi ignorancia
  #7 (permalink)  
Antiguo 24/02/2012, 20:20
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Acerca de este error

o.O pues como se define cualquier otra variable...

prueba.php
Código PHP:
Ver original
  1. $page = 6;
  2. include('text_content.php');

text_content.php
Código PHP:
Ver original
  1. if (isset($page)) {
  2. echo 'la variable $page existe!: '.$page;
  3. }else {
  4. echo 'la variable $page no existe!';
  5. }

Ahora, tal como dice @carlos_belisario verifica bien que la url del archivo a incluir sea correcta
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #8 (permalink)  
Antiguo 24/02/2012, 20:25
Avatar de Raian  
Fecha de Ingreso: febrero-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Acerca de este error

me enrede un poco x_x

exactamente no me enrede así, solo que lo entiendo pero cuando me dan así códigos nose como unirlo o estructurarlo no se cual es la palabra que utilizaría.

Última edición por Raian; 24/02/2012 a las 20:55
  #9 (permalink)  
Antiguo 24/02/2012, 21:43
Avatar de Raian  
Fecha de Ingreso: febrero-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Acerca de este error

Cita:
Iniciado por Nemutagk Ver Mensaje
o.O pues como se define cualquier otra variable...

prueba.php
Código PHP:
Ver original
  1. $page = 6;
  2. include('text_content.php');

text_content.php
Código PHP:
Ver original
  1. if (isset($page)) {
  2. echo 'la variable $page existe!: '.$page;
  3. }else {
  4. echo 'la variable $page no existe!';
  5. }

Ahora, tal como dice @carlos_belisario verifica bien que la url del archivo a incluir sea correcta
Parece que hice bien me carga la pagina pero no con la page 6 me dice esto

la variable $page existe!: 6

pero no muestra la pagina 6 que era que quería
  #10 (permalink)  
Antiguo 24/02/2012, 22:01
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Acerca de este error

Muestra lo que estas haciendo, así como tal es querer que adivinemos que es lo que esta mal...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #11 (permalink)  
Antiguo 25/02/2012, 00:39
Avatar de zarkiel  
Fecha de Ingreso: febrero-2012
Mensajes: 51
Antigüedad: 12 años, 2 meses
Puntos: 15
Respuesta: Acerca de este error

Supongo que es esto lo que quieres:

Código PHP:
Ver original
  1. switch($_GET["id"]) {
  2.  
  3. case publications:
  4. include("./text_content.php"); // llamamos al archivo, no es necesario enviar nada por GET
  5. break;
  6.  
  7. default:
  8. include("./Content/404.php");
  9. break;
  10. }

Luego ya dentro del archivo text_content.php obtenemos al parámetro "page"

Código PHP:
Ver original
  1. $page = $_GET['page'];
__________________
« Los deseos pueden hacerse realidad, pero no basta con esperar un milagro, el milagro lo hacemos nosotros... Aquí y ahora »
  #12 (permalink)  
Antiguo 25/02/2012, 08:45
Avatar de Raian  
Fecha de Ingreso: febrero-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Acerca de este error

No se si es lo que busco en el codigo prueba esta esto

Cita:
<?php
switch($_GET["Prueba"]) {
case "History":
switch($_GET["id"]) {
case movies:
include("/home/a8236997/public_html/Content/");
break;
default:
include("/home/a8236997/public_html/Content/404.php");
break;
}
break;
case "History":
switch($_GET["id"]) {
case about:
include("/home/a8236997/public_html/Content/");
break;
default:
include("/home/a8236997/public_html/Content/404.php");
break;
}
break;
case "History":
switch($_GET["id"]) {
case historias:
include("/home/a8236997/public_html/Content/");
break;
default:
include("/home/a8236997/public_html/Content/404.php");
break;
}
break;
case "Movies":
switch($_GET["id"]) {
case about:
include("/home/a8236997/public_html/Content/");
break;
default:
include("/home/a8236997/public_html/Content/404.php");
break;
}
break;
case "Text":
switch($_GET["id"]) {
case other_publications:
include("/home/a8236997/public_html/Content/text_content.php?page=6");
break;
default:
include("/home/a8236997/public_html/Content/404.php");
break;
}
break;
case "cuarta":
switch($_GET["id"]) {
case 1:
include("../categorias/004/archivo/index.php");
break;
default:
include("../categorias/index.php");
break;
}
break;
case "quinta":
switch($_GET["id"]) {
case 1:
include("../categorias/005/archivo/index.php");
break;
default:
include("../categorias/index.php");
break;
}
break;
default:
include("/home/a8236997/public_html/Content/home.php");
break;
}
?>
y en el text_content.php

Cita:
<?php
$mysql_server = '***';
$mysql_username = '***';
$mysql_password = '***';
$mysql_database = '***';
$mysql_table = '***';
$cms_no_results = 'No results';
$cms_content = '';
$db = mysql_connect($mysql_server, $mysql_username, $mysql_password);
if (!$db)
{
die('Failed to connect to database server!<br>'.mysql_error());
}
mysql_select_db($mysql_database, $db) or die('Failed to select database<br>'.mysql_error());
$id = isset($_REQUEST['page']) ? mysql_real_escape_string($_REQUEST['page']) : '';
$query = isset($_REQUEST['query']) ? $_REQUEST['query'] : '';
if (!empty($query))
{
if (!get_magic_quotes_gpc())
{
$query = addslashes($query);
}
$words = preg_split('/\s+/', $query);
foreach ($words as $word)
{
$word = preg_replace('/\W/', '', $word);
if (strlen($word) > 1)
{
$terms[] = $word;
}
}
if ($terms)
{
if (count($terms) > 4)
{
array_splice($terms, 4);
}
$sql = "SELECT p.id, p.name, p.content FROM " . $mysql_table . "PAGES p, " . $mysql_table . "SEARCH_WORDS w, " . $mysql_table . "SEARCH_WORDMATCH m WHERE(";
$where = "w.word LIKE '%" . array_shift($terms) . "%'";
while ($term = array_shift($terms))
{
$where .= " OR w.word LIKE '%" . $term . "%'";
}
$sql .= $where . ") AND m.word_id = w.id AND m.page_id = p.id GROUP BY p.id ORDER BY p.last_update_date DESC";
$result = mysql_query($sql) or die(mysql_error());
if ($aantal = mysql_num_rows($result))
{
$cms_content .= " <ol class=\"searchresults\">\n";
while ($data = mysql_fetch_array($result))
{
$cms_content .= " <li><a href=\"" . basename(__FILE__) . "?page=" . $data['id'] . "\">" . $data['name'] . "</a><br>";
$contents = substr(strip_tags($data['content']), 0, 200);
if (strlen($contents) > 199)
{
$contents .= "...";
}
$cms_content .= $contents;
$cms_content .= "</li>\n";
}
$cms_content .= " </ol>\n";
}
else
{
$cms_content = $cms_no_results;
}
}
else
{
$cms_content = $cms_no_results;
}
}
else
{
if (!empty($id))
{
$sql = "SELECT * FROM " . $mysql_table . "PAGES WHERE id = '$id'";
}
else
{
$sql = "SELECT * FROM " . $mysql_table . "PAGES WHERE home = 1";
}
$result = mysql_query($sql, $db);
if ($result)
{
if ($data = mysql_fetch_array($result))
{
if (!empty($data['url']))
{
$cms_content = "<iframe name=\"cmscontent\" style=\"position:absolute;border-width:0;width:100%;height:100%;\" src=\"" . $data['url'] . "\"></iframe>\n";
}
else
{
$cms_content = $data['content'];
}
}
if (empty($label))
{
if (!empty($id))
{
$sql = "UPDATE " . $mysql_table . "PAGES SET views=views+1 WHERE id = '$id'";
}
else
{
$sql = "UPDATE " . $mysql_table . "PAGES SET views=views+1 WHERE home = 1";
}
mysql_query($sql, $db);
}
}
}
mysql_close($db);
?>
<style type="text/css">
.boxweb_medio {
height: auto;
width: 881px;
text-align: right;
background-image: url(Content/img/web_medio.PNG);
display: table-header-group;
}
.box_largo_abajo {
background-image: url(Content/img/box_largo_abajo.PNG);
background-repeat: no-repeat;
height: 15px;
width: 544px;
}
.box_largo_arriba {
background-image: url(Content/img/box_largo_arriba2.PNG);
background-repeat: no-repeat;
height: 15px;
width: 544px;
text-align: center;
}
.box_largo_medio {
background-image: url(Content/img/box_largo_medio.PNG);
height: auto;
width: 544px;
text-align: center;
font-weight: normal;
}
.boxweb_abajo {
background-image: url(Content/img/web_abajo.png);
height: 38px;
width: 881px;
background-repeat: repeat-x;
}
</style>
</head>

<body>
<div class="boxweb_medio">
<table width="881" border="0">
<tr>
<th width="315" height="1096" scope="col">&nbsp;</th>
<th width="556" align="left" valign="top" scope="col"><div class="box_largo_arriba"></div>
<div class="box_largo_medio"><?php echo $cms_content;?></div>
<div class="box_largo_abajo"></div></th>
</tr>
</table>
</div>
<div class="boxweb_abajo"></div>
</body>
</html>

Última edición por Raian; 25/02/2012 a las 11:28
  #13 (permalink)  
Antiguo 25/02/2012, 11:54
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Acerca de este error

Para comenzar no debes usar request, ya que esto crea una brecha de seguridad en el script, usa unicamente lo que esperas que reciba, GET o POST, pero no ambas, imagina que en tu formulario vas a enviar un email, bueno pues yo desde otro sitio con solo crear un link a la página que procesa tu formulario pasando variables GET funcionará igual que lo hace con tu formulario...

Ahora, como ya te dije, LO UNICO QUE DEBES HACER es crear una variable en prueba.php (el que hace el include) y leer la misma variable en text_content.php, OBVIAMENTE debes reemplazar los $_REQUEST, $_GET o como sea que pretendes llamar a la variable page por la variable creada en prueba.php, vamos, en el ejemplo que te deje esta claro como funciona
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #14 (permalink)  
Antiguo 25/02/2012, 12:10
Avatar de Raian  
Fecha de Ingreso: febrero-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Acerca de este error

Cita:
Iniciado por Nemutagk Ver Mensaje
Para comenzar no debes usar request, ya que esto crea una brecha de seguridad en el script, usa unicamente lo que esperas que reciba, GET o POST, pero no ambas, imagina que en tu formulario vas a enviar un email, bueno pues yo desde otro sitio con solo crear un link a la página que procesa tu formulario pasando variables GET funcionará igual que lo hace con tu formulario...

Ahora, como ya te dije, LO UNICO QUE DEBES HACER es crear una variable en prueba.php (el que hace el include) y leer la misma variable en text_content.php, OBVIAMENTE debes reemplazar los $_REQUEST, $_GET o como sea que pretendes llamar a la variable page por la variable creada en prueba.php, vamos, en el ejemplo que te deje esta claro como funciona
Ya entiendo, ahora veré si lo que me dijiste lo podre poner en prueba :s
  #15 (permalink)  
Antiguo 25/02/2012, 12:57
Avatar de Raian  
Fecha de Ingreso: febrero-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Acerca de este error

tendre que dejar las direcciones como esta en index.php?page=6, index.php?page=5 etc, por que no se si me sale mal o no lo entendí como tuve que hacerlo

Etiquetas: acerca, html
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 10:47.