Personalizar error del include [Solucionado y código aquí]

Iniciado por dimitrix, 9 Enero 2008, 10:27 AM

0 Miembros y 1 Visitante están viendo este tema.

dimitrix

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.




eLank0

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

dimitrix

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.




Azielito

tambien podrias haber hecho

Código (php) [Seleccionar]

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

:D

Freeze.

Disculpen:
¿Que funcion tiene el @ en las funciones valga la redundancia?

dimitrix

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.