Foro de elhacker.net

Programación => 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í:

Código:
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
  1. <?php
  2. function limpia($var){
  3. $var = strip_tags($var);
  4. $malo = array("\\",";","\'","'","/","..","%","(",")"); // Aqui poner caracteres no permitidos
  5. $i=0;$o=count($malo);
  6. while($i<=$o){
  7. $var = str_replace($malo[$i],"",$var);
  8. $i++;
  9. }
  10. return $var;
  11. }
  12. if($_GET){
  13. $mqg=$_GET['mqg'];
  14.  
  15. }
  16. ?>
  17.  

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
  1. <?php if(file_exists(limpia($mqg)))
  2. {
  3. include limpia($mqg);
  4. }
  5. else
  6. {
  7. echo "Disculpe el Manga que busca no se encuentra disponible";
  8. } ?>

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
  1. if(!@include(limpia($mqg))){
  2.   echo "Disculpe el Manga que busca no se encuentra disponible";
  3. }
: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

tambien podrias haber hecho

Código
  1. if(!@include(limpia($mqg))){
  2.   echo "Disculpe el Manga que busca no se encuentra disponible";
  3. }
:D

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