Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (php) [Seleccionar]

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


Entonces en mi html yo llamo así..
Código (php) [Seleccionar]

// como llamo a un archivo .css
<link rel="stylesheet" type="text/css" href="<?php echo(ROOT_URL); ?>/css/fonts.css<?php echo(VERSION_LAST); ?>">

// como llamo a un script js
<script type="text/javascript" src="<?php echo(ROOT_URL); ?>/javascript/highcharts.js<?php echo(VERSION_LAST); ?>"></script>

// como llamo a una imagen
<img src="<?php echo(ROOT_URL); ?>/images/myPhoto.jpg<?php echo(VERSION_LAST); ?>">


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 (php) [Seleccionar]

require(($_SERVER['DOCUMENT_ROOT']).'/myApp/library/x.php');


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?

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:


<?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.