Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Problemas con script php incluido en HTML (https://www.clubdelphi.com/foros/showthread.php?t=11928)

jachguate 09-07-2004 20:22:03

Cita:

Empezado por kayetano
Como puedes comprobar en el enlace no he puesto ninguna ruta, el Apache ya sabe que debe buscar esa pagina dentru del directorio donde estaba "mi_pagina.php"

En pocas palabras no tienes que poner simpre "http://localhost" el Apache es muy listo y sabe donde buscar :-)

Lamento contradecirte, pero esta "resolucion" de la dirección relativa a una dirección absoluta se lleva a cabo en el navegador. Es decir, apache (o IIS o cualquier otro) no tienen nada que ver, y de hecho no sabrian donde buscar ya que dificilmente "recuerden" al cliente. Salvo que explicitamente se use alguna cookie u otra técnica, pero vamos, que no es el comportamiento normal.

Hasta luego.

;)

roman 09-07-2004 21:00:12

Cita:

Empezado por jachguate
Lamento contradecirte, pero esta "resolucion" de la dirección relativa a una dirección absoluta se lleva a cabo en el navegador. Es decir, apache (o IIS o cualquier otro) no tienen nada que ver, y de hecho no sabrian donde buscar ya que dificilmente "recuerden" al cliente.

Hola,

A punto estaba de responder airadamente para, a mi vez, contradecirte pues lo primero que entendí es que no podrían usarse rutas relativas en los enlaces- hecho francamente falso - pero en realidad te refieres a dónde se resuelven las rutas relativas, y tienes toda la razón.

Quizá hay que aclarar un poco el mecanismo.

Cuando el usuario da click en un enlace que dice 'pagina.htm', el navegador no manda la petición tal cual pues de hecho no llegaría a ningún lado fuera de la pc del usuario. El navegador antepone a 'pagina.htm' el url (mejor dicho, la parte del url que indica el servidor y directorio actual) de la página actual. Así que si el url de la página actual era

"http://www.miweb.net/midirectorio"

la petición que mandará el navegador será

"http://www.miweb.net/midirectorio/pagina.htm"

Este es el mecanismo por defecto, pero puede alterarse mediante la etiqueta <base>.

Si la página actualmente cargada especifica

<base href='http://www.miweb.net/miotrodirectorio/'>

entonces, aun cuando la página actual esté en "midirectorio", la petición se enviará a

"http://www.miweb.net/miotrodirectorio/pagina.htm"

De hecho <base> puede apuntar incluso a otro servidor.

// Saludos

salvica 10-07-2004 12:14:45

He ejecutado el código, y el script funciona, ya que aparece el título de la página (Ejemplo PHP), si embargo tambien me aparece una página en blanco

He cambiado el código embebido a
Código:

<?php echo "<h1>Hola, este es un ejemplo con PHP!</h1>"; ?>
y el resultado es más bien extraño :confused::confused::confused:
Código:

      Hola, este es un ejemplo con PHP!"; ?>
ya que no cambia el tipo de letra a h1

Da la impresión de que no cierra el código php.
Extraño ¿no?

HombreSigma 11-07-2004 04:52:22

La explicación.
 
Me parece que la explicación es la siguiente:

Lo que requiere dirección absoluta es la llamada de la página inicial a través de http para que la procese el servidor web y la mande al navegador. Los enlaces por supuesto deberán tener rutas relativas.

Si el navegador invoca una ruta de carpeta de algún disco del PC y no la dirección URLs estilo http:// ... .la página cargada no la procesa el servidor web, sino que directamente la procesa el navegador trayéndola directamente del disco duro local.

Al invocar el navegador rutas precedidas por http:// el navegador hace que algun servidor web trate de atender su petición, quién a su vez invoca el servidor de aplicaciones de PHP o cualesquier otro.

Al procesar las páginas el navegador sin antes ser procesadas por el servidor web, que en el caso mio es el Apache, no hay servidor web que envie el script php contenido en la página al servidor de PHP y por tanto el script php incluido es un simple texto que se envia literalmente al navegador sin ningún tipo de transformación.

Gracias a los asesores por sus aclaraciones.

kayetano 12-07-2004 08:30:41

Hola

Creo que mi último post ha sido mal interpretado, doy por supuesto que una conexión desde un navegador a un servidor no es permanente y que mandar simplemente un nombre de página "hola.html" no sirve de nada, esto lo doy por supuesto pero veo que tengo que escribir con pies de plomo.

Lo que yo quería dar a entender es que una vez en navegador carga una dirección "http://localhost" ya no hace falta indicarle la ruta completa, con poner "mi_carpeta/nueva_pagina.html" es suficiente ya que el navegador conoce la ruta y el apache sabe interpretar la nueva carpeta.

En vista de las "airadas" respuestas sere mucho más cauto y me lo pensaré dos veces antes de escribir nada.

jachguate 12-07-2004 17:55:06

Hola Kayetano.

No me lo tomes a mal, pero creo que donde está la confusión es aqui:

Cita:

Empezado por kayetano
ya que el navegador conoce la ruta y el apache sabe interpretar la nueva carpeta.

Puesto que el apache, no tiene nada que ver en el proceso de "interpretar" la nueva ruta, carpeta o como se le llame. De hecho, apache recibe una nueva petición "limpia" con la ruta completa

es decir, si desde una página:

www.miservidor.com/carpeta1/pagina.htm

hay un link del tipo:

carpeta2/pagina2.htm

el navegador la "traduce" a:

www.miservidor.com/carpeta1/carpeta2/pagina2.htm

y luego, se conecta con www.miservidor.com y hace un get a la página:

/carpeta1/carpeta2/pagina2.htm

donde el apache (o quien sea el webserver) no tiene nada que interpetar.

Hasta luego.

;)

kayetano 13-07-2004 08:19:47

-------------------------------------------

HombreSigma 13-07-2004 18:03:53

Todos tienen la razón.
 
Je je.

No es para tanto. Todos tienen la razón dependiendo de lo que estén explicando.

Resumo mi explicación:

Si antepongo http:// la dirección la envía el navegador a algún servidor web el cual a su vez puede requerir al interpretador de php. Sino requiere php simplemente recupera la página de algún sitio del servidor. Anoto que no es relevante la extensión .htm o .php.

Si no antepongo el prefijo anterior si no una ruta tipo carpeta, entonces el navegador no requiere ningún servidor y hace la tarea directamente buscando en el disco duro local. ¡¡ Pero lógicamente los scripts php que se ejecutan en el servidor no funcionan !! Esto era lo que me ocurría.

Con esto ya me despreocupe de si las extensiones son php o html, y simplemente manejo rutas relativas dentro de mis páginas.

Y ya me funciona !!

De nuevo gracias a todos, pues cada cual puso su parte.


La franja horaria es GMT +2. Ahora son las 04:12:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi