Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Leguim en 22 Septiembre 2021, 22:50 pm



Título: [Pregunta]: ¿Está mal esta forma de llamar a los archivos?
Publicado por: Leguim en 22 Septiembre 2021, 22:50 pm
¿Está mal esta forma de llamar a los archivos que están alojados en mi propio servidor?

Código
  1. define('HTTP_PROTOCOL', 'http'); // http protocol
  2. define('ROOT_URL', (HTTP_PROTOCOL).'://'.($_SERVER['HTTP_HOST']).'/myApp'); // donde myApp es el nombre x de la aplicación
  3.  

Entonces en mi html yo llamo así..
Código
  1. // como llamo a un archivo .css
  2. <link rel="stylesheet" type="text/css" href="<?php echo(ROOT_URL); ?>/css/fonts.css<?php echo(VERSION_LAST); ?>">
  3.  
  4. // como llamo a un script js
  5. <script type="text/javascript" src="<?php echo(ROOT_URL); ?>/javascript/highcharts.js<?php echo(VERSION_LAST); ?>"></script>
  6.  
  7. // como llamo a una imagen
  8. <img src="<?php echo(ROOT_URL); ?>/images/myPhoto.jpg<?php echo(VERSION_LAST); ?>">
  9.  

Hay constantes que ya tiene listas PHP creo que una es __DIR__ o algo así, el punto es que estaba pensando y una cosa es acceder por directorio pero yo estoy accediendo por una URL, quizás sea menos óptimo hacerlo como hago yo.

¿Qué les parece?



Título: Re: [Pregunta]: ¿Está mal esta forma de llamar a los archivos?
Publicado por: MinusFour en 23 Septiembre 2021, 00:03 am
No se de que hables cuando dices por "directorio". Los attributos src y href usan URLs.


Título: Re: [Pregunta]: ¿Está mal esta forma de llamar a los archivos?
Publicado por: Leguim en 23 Septiembre 2021, 03:22 am
Ah okay, me olvidé de dejar un ejemplo de como llamo mis ficheros:

Código
  1. require(($_SERVER['DOCUMENT_ROOT']).'/myApp/library/x.php');
  2.  

Para este caso si está correcto hacerlo con una constante de directorio "(C:\xampp\etc)" y no de una url, no?


Título: Re: [Pregunta]: ¿Está mal esta forma de llamar a los archivos?
Publicado por: Danielㅤ en 23 Septiembre 2021, 06:29 am
Hola, tenés que usar la ruta de archivos locales porque justamente estás llamando a archivos del mismo servidor, cuando es externo se usan las URLs.



Saludos


Título: Re: [Pregunta]: ¿Está mal esta forma de llamar a los archivos?
Publicado por: Shell Root en 23 Septiembre 2021, 14:42 pm
Es lo que se llama comun mente rutas absolutas o relativas. Creería que es lo mismo pero algunas personas les va mejor con la ruta completa. A mi en lo personal prefiero las relativas a partir de la carpeta del website, no me gusta ver plasmado la ruta completa.


Título: Re: [Pregunta]: ¿Está mal esta forma de llamar a los archivos?
Publicado por: WHK en 24 Septiembre 2021, 18:17 pm
Buscas algo asi?

Código:
dirname(((isset($_SERVER['HTTPS']) and ($_SERVER['HTTPS'] === true)) ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']).'/'

También está el $_SERVER['PHP_SELF'] pero tiene XSS.

Por otro lado en ves de pegar las variables en el template mejor llamaría a una función que construya la ruta según opciones, por ejemplo:

Código:
<?php
function url($path = '/') {
    return (((isset($_SERVER['HTTPS']) and ($_SERVER['HTTPS'] === true)) ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].$path;
}
?>

<a href="<?php=url('/test')?>">Test</a>

En el camino te encontrarás con mcuhos problemas, por ejemplo algunos filtrados para evitar el xss, saber si vas a tener lógica dentro de tus plantillas o no, etc. Lo que te recomiendo mejor es que uses un framework que ya tenga todo eso incluido como codeigniter (https://codeigniter.com/).

Saludos.