Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: dimitrix en 9 Enero 2008, 10:27 AM

Título: Personalizar error del include [Solucionado y código aquí]
Publicado por: dimitrix en 9 Enero 2008, 10:27 AM
Lo que me interesa es personalizar el error de cuando se importa un archivo que no existe, pense en hacerlo con la funcion elseif que mirase si el archivo existe y si no existe que haga un echo.

Pero no se que hacer para ver si existe el archivo o si hay alguna forma en la funcion include, pues eso.

PD:Me he leido lo de php.net y busque en google. Gracias.
Título: Re: Personalizar error del include
Publicado por: eLank0 en 9 Enero 2008, 13:45 PM
Hola,

En Google he comprobado que la cadena "existe fichero PHP" tiene tu solución.

Yo te pongo la mía: tienes en PHP una función de tipo binario llamada bool file_exists(string nombrefichero) la cual retorna 0 o 1 dependiendo de si existe o no el archivo.

Podrías programar el "error" así:

if(file_exists($tufichero))
{
//...
}
else
{
//ERROR
}


Salu2
Título: Re: Personalizar error del include
Publicado por: dimitrix en 9 Enero 2008, 19:49 PM
Bueno, le puse el código para limpiar, para que no me hagan RFI, aviso que este código me lo enseño "Azielito" para que no me hicieran XSS y lo modifique yo para que no permita los RFI (No quiero lucirme, lo digo por si alguien no quiere un RFI):

Código (php) [Seleccionar]
<?php
function limpia($var){
$var strip_tags($var);
$malo = array("\\",";","\'","'","/","..","%","(",")"); // Aqui poner caracteres no permitidos
$i=0;$o=count($malo);
while($i<=$o){
$var str_replace($malo[$i],"",$var);
$i++;
}
return $var;
}
if(
$_GET){
$mqg=$_GET['mqg'];

}
?>



Una vez limpia ya puedo poner este código, de tal forma que solo se podrá importar archivos de la carpeta donde se esté ejecutando la web con este código:

Código (php) [Seleccionar]
<?php if(file_exists(limpia($mqg)))
{
include 
limpia($mqg);
}
else
{
echo 
"Disculpe el Manga que busca no se encuentra disponible";
?>


Por su puesto este último código es gracias a eLank0 que me dijo lo de "file_exists"

Por último dar las gracias a todos.
Título: Re: Personalizar error del include [Solucioado y código aquí]
Publicado por: Azielito en 9 Enero 2008, 21:49 PM
tambien podrias haber hecho

Código (php) [Seleccionar]

if(!@include(limpia($mqg))){
   echo "Disculpe el Manga que busca no se encuentra disponible";
}

:D
Título: Re: Personalizar error del include [Solucioado y código aquí]
Publicado por: Freeze. en 9 Enero 2008, 21:57 PM
Disculpen:
¿Que funcion tiene el @ en las funciones valga la redundancia?
Título: Re: Personalizar error del include [Solucioado y código aquí]
Publicado por: dimitrix en 9 Enero 2008, 22:43 PM
La cuestión es que vi el "@" esta mañana, es para definir errores, pero creo que servía para más, bueno antes de fastidiarla, aquí te dejo la información:

http://es.php.net/manual/es/language.operators.errorcontrol.php

Cita de: Azielito en  9 Enero 2008, 21:49 PM
tambien podrias haber hecho

Código (php) [Seleccionar]

if(!@include(limpia($mqg))){
   echo "Disculpe el Manga que busca no se encuentra disponible";
}

:D

Sin duda, no defraudas XD, muchas gracias, no está de más aprender cosas nuevas.