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)

HombreSigma 30-06-2004 00:16:21

Problemas con script php incluido en HTML
 
Instalé Apache y PHP en mi PC. Ambas parecieran estar funcionando ya que la instrucción de prueba "info.php" para actuar como debiera.

Como estoy iniciando mi aprendizaje en PHP, mi primer ejercicio fue realizar este conocido ejemplo que llamé "ejemplo1.htm":

<html>
<head>
<title>Ejemplo PHP</title>
</head>
<body>
<?php echo "Hola, este es un ejemplo con PHP!"; ?>
</body>
</html>

Lo invoco con la siguiente dirección puesta en Internet Explorer:

C:\Archivos de programa\Apache Group\Apache\htdocs\Ejemplo1.htm

Sin embargo me saca una página en blanco.

Que puede estar ocurriendo???

roman 30-06-2004 00:21:47

Al especificar la dirección de esa forma la petición nunca llega a Apache y por tanto no la procesa PHP. Si ves el código fuente de esa página "en blanco" verás el código PHP.

Para poder verla en tu navegador debes poner la dirección:

http://localhost/Ejemplo1.htm

// Saludos

HombreSigma 30-06-2004 02:02:31

Script tampoco funciona ...
 
En realidad no funciona ni:
http://127.0.0.1/ejemplo1.htm
http://localhost/ejemplo1.htm

ni la anterior.

Las tres páginas no ejecutan el script php.

Si utilizo una página html normal si funciona con las tres especificaciones.
Lo que no funciona es el script embebido o incluido dentro de la página html !

Gracias de antemano.

__hector 30-06-2004 02:45:25

Si estas en windows, es posible que la extension .html no este asociada al parser o interprete de php, de hecho seguro que no lo tiene. Cambiale la extension al archivo a .php

Dinos que tal...

roman 30-06-2004 02:46:09

Aunque me parece que lo aclaras vamos a descartar la posibilidad de que Apache no haya sido correctamente instalado:

Si navegas simplemente a http://localhost, ¿ves la página de bienvenida de Apache?

De ser así, cuando dices

Cita:

Empezado por HombreSigma
ya que la instrucción de prueba "info.php" para actuar como debiera.

¿a qué te refieres? ¿info.php es un script con phpinfo()? ¿Muestra el listado de la información de PHP?.

Si también es cierto esto, dime, después de la instalación, en caso de haber reiniciado la PC, ¿te aseguraste de que esté corriendo el servidor Apache?

// Saludos

roman 30-06-2004 02:47:20

¡Ah caramba!

Se me adelantó Héctor. Hay veces que no vemos lo más obvio. Seguro debe ser lo que él dice de la extensión.

:)

// Saludos

HombreSigma 30-06-2004 03:26:58

Siguio igual ?
 
Perdón corrijo lo anterior. En realidad lo que arreglo el problema fue el cambio de extensión del archivo a ejemplo1.php, como me había sugerido Héctor.

Sin embargo, esto no me parece muy conveniente, porque que ocurririría si tuviese un script php y un script java incluidos dentro de una misma página HTML. Debo en este caso crear un archivo html con que tipo de extensión: para php o para java?

Mejor no sería configurar el php.ini de alguna manera para que reconozca la extensión html? Como se haría ?

Gracias por cualquier información adicional.

HombreSigma 01-07-2004 17:30:05

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

roman 01-07-2004 17:35:34

+++++++++++

__hector 01-07-2004 20:18:07

************

Java no maneja scripts, salvo que hables de JSP (java servlets pages), y eso trae un problema de fondo. Sucede que para que el servidor pueda interpretar el codigo de una pagina, y ejecutar las acciones especificadas en el Script, necesita por obligacion un interprete. Asi hay interpretes para asp clasico (asp.dll), para asp.net, para php (php.exe), java, coldfusion, y cualquier otro lenguaje de webscripting.

El servidor (iis en este caso) necesita saber, para cada extension de pagina, cual interprete llamar, por lo que usa el mapeo de las extensiones del archivo para llamar uno u otro, pero nunca... nunca dos a la vez. Eso es logico en el hecho de que, php no podra interpretar asp y viceversa, incluso cuando usen tags iguales para indicar el inicio/fin del codigo a ser interpretado ( <% %> o <? ?> o cualquier otro).

Ahora, si te refieres a java como javascript, como corre en el cliente, no hay problemas con eso. Con una etiqueta <script> funciona sin problemas.

Para que el webserver te reconozca la extension html para ser interpretada por el motor de php, en iis realiza los siguientes pasos:

Click derecho sobre el website/properties/Home Directory/Configuration/Mappings

Busca la extension .html en la lista, y si no esta, creala con las mismas propiedades que tiene la de la extension .php

HombreSigma 02-07-2004 23:12:08

Configuración APACHE
 
Gracias por la información.

Como explicas se configuraría el IIS. Pero como se configuraría el APACHE?

Gracias de nuevo...

roman 02-07-2004 23:24:28

Busca las entradas AddType en el archivo %APACHE%\Conf\httpd.conf

Encontrarás una como

AddType application/x-httpd-php .php

Agrega la línea

AddType application/x-httpd-php .html

y reinicia Apache.

Ahora Apache mandará las páginas con extensión html a PHP.

// Saludos

kayetano 07-07-2004 12:32:15

Hola a todos

Lo que comenta Roman tiene el problema de que todoas las páginas tanto php com html pasarían por el interprete de PHP con el consiguiente consumo de recursos de la máquina, si solo es para hacer pruebas en casa no pasa nada, pero en un servidor como Dios manda esto sería un gran desperdicio de recursos.

__hector 07-07-2004 18:26:53

Solucion: al cesar lo que es del cesar

Si vas a ejecutar codigo php, la extension del archivo debe ser php. Si es asp, debe ser asp, si es asp.net: aspx, si es coldfusion: cfm, etc etc etc

No veo el inconveniente de hacerlo como dios manda, aunque me queda tambien la duda de que tan lento puede ser el proceso de parsing de una pagina html con php, sin que esta incluya codigo php en si misma. Sera cuestion de probar

HombreSigma 08-07-2004 17:32:57

Continuando con otro problema similar.
 
La verdad hice el cambio el archivo de configuración y tampoco me funcionó. Por esta razón deje esta página con extensión php lo que me permite que el interpretador la ejecute correctamente.

Pero ahora el problema con esta misma página es que no debo invocarla de forma simple, lo cual ya me funciona, sino dentro de un conjunto de marcos.

Tengo un marco superior, un marco izquierdo y un marco derecho. La página ahora debe mostrar sus resultados en el marco derecho siendo invocada por un enlace desde el marco superior o cuando se inicializa la apertura del conjunto de marcos.

Pero en vez de mostrar los resultados como lo haría cuando se ejecuta sola, parece que el interpretador php no ejecuta el código php de la página sino que lo toma como texto, a pesar de que ya tiene extensión .php. Por tanto, el resultado en pantalla no es la ejecución del script sino parte del texto del código php !!.

Gracias por cualquier sugerencia.

kayetano 08-07-2004 19:23:06

Hola

Como haces la llamada a esa página ??

Recuerda que para que una página sea interpretada por el PHP debe pasar por el servidor Apacha, o con un ejemplo:

Si llamas desde el navegador a una página de la siguiente forma
http://localhost/mi_pagina.php
será una interpretada por PHP

Si lo haces de esta otra forma
c:\mi_pagina.php
No será interpretada por PHP y el navegador intentará interpretarla como buenamente pueda.

HombreSigma 08-07-2004 21:46:53

Acercándonos a la solución
 
Kayetano parece que tiene la razón.

Cuando utilizo la ruta absoluta al servidor como por ejemplo http://localhost/mipagina.php e incluso http://localhost/mipagina.htm

me funciona en ambos casos. No ocurre así con las direcciones relativas con páginas html que incluyen php ni con los marcos que llaman archivos con extensión php.

Entonces como haría para colocar esta pagína en un servidor diferente del local mío sino en otro? Debo cambiar todas las rutas absolutas como la anterior a las rutas del nuevo servidor? Esto me parecería demasiado impractico.

Gracias por la información.

jachguate 08-07-2004 23:10:42

Cita:

Empezado por HombreSigma
me funciona en ambos casos. No ocurre así con las direcciones relativas con páginas html que incluyen php ni con los marcos que llaman archivos con extensión php.

Estoy seguro que tu problema está aqui en que estas cargando la página que tiene la definición de los marcos de la forma:

c:\pagina\marcos.html

y no como

http://localhost/marcos.html.

y como verás... la ruta "relativa" también es relativa a la forma en que se ha cargado la página con frames.

En un servidor definitivo, claro está, no vas a tener ningun problema usando rutas relativas.

Hasta luego.

;)

kayetano 09-07-2004 13:43:12

Hola

No tiens que poner las direcciones completas de las páginas que quieres que se visualicen, me explico con un ejemplo

Si estas visualizando la página
http://localhost/mi_pagina.php
la estas viendo desde el servidor Apache, ahora si desde esta pagina tienes un enlacel del tipo <a href="mi_otra_pagina.php">hola verano</a> tabién la estaras viendo desde el servidor.

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 :-)

tcp_ip_es 09-07-2004 13:47:54

A parte de la segunda duda del hombresigma :D .... yo para páginas html con código php embebido utilizo la extensión .phtml.

Saludos, Tony


La franja horaria es GMT +2. Ahora son las 10:10:48.

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