Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Variable por url cambiar error include

Estas en el tema de Variable por url cambiar error include en el foro de PHP en Foros del Web. Hola a todos por aqui. Tengo un problemilla con esto y es que no he hallado la forma de arreglarlo aun. El tema es que ...
  #1 (permalink)  
Antiguo 28/06/2014, 03:13
Avatar de eccorposse  
Fecha de Ingreso: diciembre-2009
Ubicación: Beijing
Mensajes: 69
Antigüedad: 14 años, 11 meses
Puntos: 0
Variable por url cambiar error include

Hola a todos por aqui. Tengo un problemilla con esto y es que no he hallado la forma de arreglarlo aun. El tema es que paso las variables category y page por la url y con un array verifico si puedes acceder o no.

Aqui esta el codigo:

Código PHP:
$validpages = array('a''c');
if (isset(
$_GET['category'])) {
    
$category .= $_GET['category'] . "/";
    if (isset(
$_GET['page'])) {
        
$page $_GET['page'];
        if (
in_array($page,$validpages)) {
            
$page .= '.php';
            include (
"contenidos/".$category.$page);
        }
        else {include(
'index.php');echo "Page not found";}
    }
    else {include(
'index.php');echo "Category not found";}
}
else {include(
'index.php');} 
El problemas es que al pasar una "incorrecta variable", ej.:
Código:
?category=letra&page=b
Me sale error de include:
Warning: include():

Y lo que no quiero es que alguien vea ese error al pasar una "incorrecta variable" ya sea porque el usuario la escribio en la url o por mi falta.

Saludos y Gracias de antemano
  #2 (permalink)  
Antiguo 28/06/2014, 06:34
 
Fecha de Ingreso: junio-2014
Ubicación: Sevilla
Mensajes: 22
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Variable por url cambiar error include

Si no quieres que salgan los errores de PHP usa esta función al principio de tu script PHP:

Código PHP:
Ver original
  1. <?php
  2. ini_set('display_errors', 1); #ASI SE VEN LOS ERRORES
  3. ini_set('display_errors', 0); #ASI NO
  4. ?>
  #3 (permalink)  
Antiguo 28/06/2014, 07:12
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: Variable por url cambiar error include

Cita:
Iniciado por GoldWar Ver Mensaje
Si no quieres que salgan los errores de PHP usa esta función al principio de tu script PHP:

Código PHP:
Ver original
  1. <?php
  2. ini_set('display_errors', 1); #ASI SE VEN LOS ERRORES
  3. ini_set('display_errors', 0); #ASI NO
  4. ?>
Con eso no se veran los errores, pero no solucionara el problema.

Con isset() solo compruebas si una variable esta definida o es nula, yo en tu lugar ademas comprobaria si el contenido de la variable se corresponde con el contenido esperado, para ello puedes usar los oparadores de comparacion de PHP
  #4 (permalink)  
Antiguo 28/06/2014, 09:05
Avatar de eccorposse  
Fecha de Ingreso: diciembre-2009
Ubicación: Beijing
Mensajes: 69
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Variable por url cambiar error include

GoldWar, gracias por tu respuesta pero xerifandtomas tiene razon, no busco esconder errores, si no arreglarlos o en su caso buscar alguna via para disfrazarlos sin que nadie se de cuenta, no hago nada con que si algo sucede como un enlace eqivocado la pagina se quede en blanco y el usuario se que quede preguntandose: Bueno y ahora que?

xerifandtomas dejame ver si con los operadores puedo hacer algo, luego aviso por aqui, muchas gracias a ambos y que tengan buen dia.
  #5 (permalink)  
Antiguo 28/06/2014, 09:30
Avatar de eccorposse  
Fecha de Ingreso: diciembre-2009
Ubicación: Beijing
Mensajes: 69
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Variable por url cambiar error include

Perdon!!! rectifico el codigo:

Código PHP:
$validpages = array('a','1''c'); 
if (isset(
$_GET['category'])) { 
    
$category .= $_GET['category'] . "/"
    if (isset(
$_GET['page'])) { 
        
$page $_GET['page']; 
        if (
in_array($page,$validpages)) { 
            
$page .= '.php'
            include (
"contenidos/".$category.$page); 
        } 
        else {include(
'index.php');echo "Page not found";} 
    } 
    else {include(
'index.php');echo "Category not found";} 

else {include(
'index.php');} 
1 si esta en el array por lo que es que me da el error de include, si no estuviera en el array estuviera bien el codigo pero aun asi, 1 no se encuentra en la categoria de letras si no de numeros, pero como esta en array devuelve TRUE y sigue corriendo el codigo. Mil perdones por esto pero andaba con el cerebro a 1000/mph
  #6 (permalink)  
Antiguo 28/06/2014, 09:53
Avatar de eccorposse  
Fecha de Ingreso: diciembre-2009
Ubicación: Beijing
Mensajes: 69
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Variable por url cambiar error include

Perfecto!!! hice el uso de operadores, no me paso por el cabezon y si file_exists bien!

Gracias por todo a los dos, un saludo!!!
  #7 (permalink)  
Antiguo 28/06/2014, 10:09
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: Variable por url cambiar error include

Cita:
Iniciado por eccorposse Ver Mensaje
Perfecto!!! hice el uso de operadores, no me paso por el cabezon y si file_exists bien!

Gracias por todo a los dos, un saludo!!!
Te lo estaba reescribiendo, aun que ya lo solucionaste te dejo el codigo

Código PHP:
<?php

$validpages 
= array('a','1''c'); 
if (isset(
$_GET['category']) AND isset($_GET['page']) ) {
    
$category $_GET['category']; 
    
$page $_GET['page']; 
    
//comprobamos $categorya
    
if ($category=='micategoria_1') {}
    elseif (
$category=='micategoria_2') {}
    elseif (
$category=='micategoria_3') {}
    else{include(
'index.php');echo "Category not found"; exit;}
    
//comprobamos $page
    
if (in_array($page,$validpages)) { 
    
$page .= '.php'
    include (
"contenidos/".$category.'/'.$page); 
    }else{include(
'index.php');echo "Page not found";}
} else {include(
'index.php');}  


?>
  #8 (permalink)  
Antiguo 28/06/2014, 10:24
Avatar de eccorposse  
Fecha de Ingreso: diciembre-2009
Ubicación: Beijing
Mensajes: 69
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Variable por url cambiar error include

Gracias por todo y que tomaras un poco de tu tiempo para reescribir el script. Que me parece muy bien, y que podria utilizarlo, debido a que hay una sola parte que solo tendra acceso a contados contenidos por eso cree el array, despues lo mejorare con BD y el CP, pero en cambio cuando ya te logueas ya tienes acceso a todo los contenidos por lo que creo mejor usar file_exists para futuras adiciones de contenido no tener que estar escribiendo o borrando el array. Valla, no se, digo esto para automatizar el sistema por lo que te pregunto si asi seria una buena idea para esto.

Saludos.

Etiquetas: include, url, variable
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 12:51.