Foros del Web » Programando para Internet » PHP »

Problemas con lectura de PHP 5

Estas en el tema de Problemas con lectura de PHP 5 en el foro de PHP en Foros del Web. Hola a todos...!!! He instalado Apache 2.0.59 y PHP 5.1.4 La bienvenida de apache y el info.php aparecen correctamente. Ahora, para controlar que el php ...
  #1 (permalink)  
Antiguo 31/07/2006, 13:16
 
Fecha de Ingreso: octubre-2004
Mensajes: 741
Antigüedad: 13 años, 1 mes
Puntos: 3
Pregunta Problemas con lectura de PHP 5

Hola a todos...!!!
He instalado Apache 2.0.59 y PHP 5.1.4
La bienvenida de apache y el info.php aparecen correctamente.
Ahora, para controlar que el php lee correctamente, he llamado con Localhost unos archivos de prueba:

prueba1.php Este archivo me lo muestra correctamente:

<?php
print "<p>Hola</p>";
?>

prueba2.php Este archivo tb me lo muestra correctamente:

<html>
<head>
<title></title>
</head>
<body>
<h3>Mi primer ejemplo php</h3>
<?php echo "hola mundo"; ?>
<hr>
</body>
</html>

Ahora, el archivo prueba3.php me muestra la pagina en blanco:

<html>
<head>
<title></title>
</head>
<body>
<?php
$myvar = "Hola. Este es mi primer script en PHP \n";
//Esto es un comentario
es mi primer script en PHP \n";
//Esto es un comentario
echo $myvar;
?>
</body>
</html>

Y en la archivo prueba4.php que es le que más me interesa, por que
corresponde a enlaces de la web que estoy construyendo, tb me muestra la ventana en balnco:

<?php include("estilo/interfase.php") ?>
<?php CabeceraPagina(); ?>
<p> Agradecimientos </p>
<?php PiePagina(); ?>

No me puedo dar cuenta por que ocurre esto, a mi me resulta muy extraño que el php lea algunos archivos y otros no... será que el php5 lleve otra sintaxis?... No se.
Desde ya muchisimas gracias y un saludo a todos!!!
Paul.-
  #2 (permalink)  
Antiguo 31/07/2006, 13:20
Avatar de ArrauKano  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago
Mensajes: 664
Antigüedad: 15 años, 1 mes
Puntos: 4
puede ser que ocurre algun error y php no este configurado para mostrar los errores,

veo por lo menos q el comentario que inicias con // tiene 2 lineas,
los comentarios de este estilo somentan solo la linea donde estn, por lo tanto debes porner // en las dos lineas comentadas.
ahora si te vas a ver el codigo fuente, seguramente veras la mitad del html de salida
  #3 (permalink)  
Antiguo 31/07/2006, 13:20
Avatar de Riven-Ward  
Fecha de Ingreso: julio-2006
Mensajes: 33
Antigüedad: 11 años, 4 meses
Puntos: 0
prueba3.php tiene errores, asi estaría correctamente programado:

Código PHP:
<html>
<head>
<title></title>
</head>
<body>
<?php
$myvar 
"Hola. Este es mi primer script en PHP \n";
//Esto es un comentario
echo $myvar;
?>
</body>
</html>
Y en el último archivo comprueba que el archivo que quieres incluir exista, y también comprueba que las funciones a las que llamas existan.

Salu2!
  #4 (permalink)  
Antiguo 31/07/2006, 13:29
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 11 años, 6 meses
Puntos: 3
Desacuerdo

Hola

Para terminar el comentario de Riven-Ward
Cita:
es mi primer script en PHP \n";
de seguro se te fue el enter

prueba4.php
veamos el codigo interface.php
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #5 (permalink)  
Antiguo 31/07/2006, 13:49
 
Fecha de Ingreso: octubre-2004
Mensajes: 741
Antigüedad: 13 años, 1 mes
Puntos: 3
Hola gente gracias por responder y ayudarme

En el prueba3.php lo he puesto como me dicen y ahora si se ve.
En el prueba4.php el archvio interfase.php existe y tiene las funciones.
Es un poco grande para que lo ponga aquí... o lo subo igual?
Paul.-
  #6 (permalink)  
Antiguo 31/07/2006, 14:09
 
Fecha de Ingreso: octubre-2004
Mensajes: 741
Antigüedad: 13 años, 1 mes
Puntos: 3
interfase.php el cual estoy utilizando

Aqui les mando el archivo interfase.php que es el ejmplo que estoy utilizando, este mismo lo he probado y nada...

<?php
function CabeceraPagina()
{
?> <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<FONT SIZE="+1">Esta cabecera estará en todas sus páginas.</FONT><BR>
<hr>
<?
}

function PiePagina()
{
?>
<hr>
<FONT SIZE="-1">Este es el pie de página.</FONT><BR>
</body>
</html>
<?
}
?>
  #7 (permalink)  
Antiguo 31/07/2006, 14:47
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 11 años, 6 meses
Puntos: 3
Si ha eso le llamas grandes, pues es una hormiguita ante los elefantes que he visto aqui

probe tu script y funciona bien, bueno en mi caso

ahora bien,
- existe el subdirectorio estilo en realidad
- porque no prueba y poner los dos archivos (prueba4.php e interfase.php) en un mismo directorio.

Cita:
<?php include("interfase.php") ?>
<?php CabeceraPagina(); ?>
<p> Agradecimientos </p>
<?php PiePagina(); ?>
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #8 (permalink)  
Antiguo 31/07/2006, 15:22
 
Fecha de Ingreso: octubre-2004
Mensajes: 741
Antigüedad: 13 años, 1 mes
Puntos: 3
Los dos archivos en el mismo directorio

He puesto los dos archivos ( prueba4.php e interfase.php) en el mismo directorio, obviamente que en prueba4.php cambie la ruta... es decir que le he puesto <?php include("interfase.php") ?> y nada, sigue apareciendo la ventana en blanco... la verdad que no se como solucionarlo, no se si es problema de lectura de PHP ó de su configuración o no se que!!!
Paul.-
  #9 (permalink)  
Antiguo 31/07/2006, 15:49
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 11 años, 6 meses
Puntos: 3
esto es lo que he tomado de ti y me muestra la pagina ok
prueba4.php
Código PHP:
<?php include("interfase.php"?>
<?php CabeceraPagina
(); ?>
<p> Agradecimientos </p>
<?php PiePagina(); ?>
interfase.php
Código PHP:
<?php
function CabeceraPagina()
{
?> <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<FONT SIZE="+1">Esta cabecera estará en todas sus páginas.</FONT><BR>
<hr>
<?
}

function 
PiePagina()
{
?>
<hr>
<FONT SIZE="-1">Este es el pie de página.</FONT><BR>
</body>
</html>
<?
}
?>
ahor si no se que mas podre decirte mi pana, espero que aparesca un guru por este topic y así poder saber los dos.
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #10 (permalink)  
Antiguo 31/07/2006, 15:59
Avatar de Riven-Ward  
Fecha de Ingreso: julio-2006
Mensajes: 33
Antigüedad: 11 años, 4 meses
Puntos: 0
Es raro, seh.

Mira, antes de todo el código de prueba4.php pon esto:

Código PHP:
error_reporting(E_ALL); 
Porque es bastante raro que no te devuelva errores, asi como no lo hizo en prueba3.php

Quizás tienes a 0 el error_reporting en el php.ini, lo que hace que PHP no te reporte los errores. Para cambiarlo definitivamente anda al php.ini y busca "error_reporting". Déjalo asi:

Código:
error_reporting = E_ALL
Salu2!
  #11 (permalink)  
Antiguo 31/07/2006, 16:18
 
Fecha de Ingreso: octubre-2004
Mensajes: 741
Antigüedad: 13 años, 1 mes
Puntos: 3
Siguiendo las instrucciones

Antes de todo en el archivo prueba4.php he puesto: error_reporting(E_ALL); y al abrirlo me sale: error_reporting(E_ALL);
En el archivo php.ini el "error_reporting = E_ALL" está descomentado, es decir que me figura como me dicen, habilitado.
Para mi que el PHP me está leyendo mal, algunas cosas lee y otras no, por que como dije al principio, el prueba1.php, el prueba2.php y el prueba3.php con la modificación que me dijeron los lee correctamente.
Obviamente, en mi Windows XP pack2 he reinstalado el Apache y el PHP tres veces y lo mismo. Es un caso raro que no puedo solucionar y no me deja trabajar.
  #12 (permalink)  
Antiguo 31/07/2006, 21:18
 
Fecha de Ingreso: octubre-2004
Mensajes: 741
Antigüedad: 13 años, 1 mes
Puntos: 3
Reitero el pedido de ayuda

Hola a todos nuevamente.
Reitero el pedido de ayuda con otros ejemplos.
He instalado Apache 2.0.59 y PHP 5.1.4 en Win XP servipack2
La bienvenida de apache y el info.php aparecen correctamente.
Ahora, para controlar que el php lee correctamente, he llamado con Localhost unos archivos de
prueba, todos ubicados en el mismo directorio:

prueba1.php Este archivo me lo muestra correctamente:

<?php
print "<p>Hola</p>";
?>

pagina.php Este archivo no lo muestra, aparece la pantalla en blanco.

<?php include("interfase.php") ?>
<?php CabeceraPagina(); ?>

Página 1
<BR><BR><BR><BR><BR>

Contenido blalbl blalb alb<BR><BR>
más cosas...<BR><BR>

fin<BR><BR>

<?php PiePagina(); ?>

Este es el archivo interfase.php (como dije se encuentra en el mismo directorio)

<?php
function CabeceraPagina()
{
?> <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<FONT SIZE="+1">Esta cabecera estará en todas sus páginas.</FONT><BR>
<hr>
<?
}

function PiePagina()
{
?>
<hr>
<FONT SIZE="-1">Este es el pie de página.</FONT><BR>
</body>
</html>
<?
}
?>

Aclaro que en el archivo php.ini "error_reporting = E_ALL" está habilitado.
A mi poco entender, veo que el PHP algunas cosas lee y otras no. En este caso no me está leyendo el include.
Por favor, si alguien me puede ayudar... esto no me permite seguir trabajando!!!
Muchas gracias nuevamente.
paul.-
  #13 (permalink)  
Antiguo 31/07/2006, 23:18
Avatar de ArrauKano  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago
Mensajes: 664
Antigüedad: 15 años, 1 mes
Puntos: 4
no se si esta permitido definir funciones y salirse del bloque de php en medio.

en vez de salirte del bloque, encierra ese html en una cadena y le pones echo o print

Código PHP:
<?php
function CabeceraPagina()
{
echo 
'<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<FONT SIZE="+1">Esta cabecera estará en todas sus páginas.</FONT><BR>
<hr>'
;
}

function 
PiePagina()
{
 echo 
'<hr>
 <FONT SIZE="-1">Este es el pie de página.</FONT><BR>
 </body>
 </html>'
;
}
?>
trata en lo posible evitar la practica de salirte de los bloques php y sacar html entre medio, en alguna parte del manual vi que en ciertos casos no funciona (quisas declarando funciones es un caso)
  #14 (permalink)  
Antiguo 01/08/2006, 00:03
 
Fecha de Ingreso: octubre-2004
Mensajes: 741
Antigüedad: 13 años, 1 mes
Puntos: 3
Gracias ArrauKano

Si pruebas el archivo pagina.php e interfase.php (los dos en el mismo directorio) y tu Apache y PHP funcionan correctamente, podras verlos. Este es el problema que tengo, PHP no me está leyendo los include() y no se por que.
Estos script funcionan perfectamente y fuerosn extraidos del foro:
http://www.forosdelweb.com/f18/faqs-php-530600-post414499/
  #15 (permalink)  
Antiguo 01/08/2006, 05:31
 
Fecha de Ingreso: mayo-2006
Mensajes: 8
Antigüedad: 11 años, 6 meses
Puntos: 0
A mi me sucede lo mismo con PHP 5. No consigo leer el contenido de un include
  #16 (permalink)  
Antiguo 01/08/2006, 05:38
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
Cita:
Iniciado por paulkees
Hola a todos nuevamente.
Reitero el pedido de ayuda con otros ejemplos.
He instalado Apache 2.0.59 y PHP 5.1.4 en Win XP servipack2
La bienvenida de apache y el info.php aparecen correctamente.
Ahora, para controlar que el php lee correctamente, he llamado con Localhost unos archivos de
prueba, todos ubicados en el mismo directorio:

prueba1.php Este archivo me lo muestra correctamente:

<?php
print "<p>Hola</p>";
?>

pagina.php Este archivo no lo muestra, aparece la pantalla en blanco.

<?php include("interfase.php"); //Faltaba este ; ?>
<?php CabeceraPagina(); ?>

Página 1
<BR><BR><BR><BR><BR>

Contenido blalbl blalb alb<BR><BR>
más cosas...<BR><BR>

fin<BR><BR>

<?php PiePagina(); ?>

Este es el archivo interfase.php (como dije se encuentra en el mismo directorio)

<?php
function CabeceraPagina()
{
?> <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<FONT SIZE="+1">Esta cabecera estará en todas sus páginas.</FONT><BR>
<hr>
<?
}

function PiePagina()
{
?>
<hr>
<FONT SIZE="-1">Este es el pie de página.</FONT><BR>
</body>
</html>
<?
}
?>

Aclaro que en el archivo php.ini "error_reporting = E_ALL" está habilitado.
A mi poco entender, veo que el PHP algunas cosas lee y otras no. En este caso no me está leyendo el include.
Por favor, si alguien me puede ayudar... esto no me permite seguir trabajando!!!
Muchas gracias nuevamente.
paul.-
Tenias en el php.ini el Display_errors = ON? A ver si x eso se quedaba en blanco.

EDITO Y AGREGO:

Si es posible salir y entrar en php en funciones. Uso ésta de una clase de un programa y funciona perfectamente:

Código PHP:
function genTable($meta, $input)
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<?php if(function_exists("metaCharset")) metaCharset(); ?>
<?php 
echo $meta ?>
<title>XXXXXX</title>
<script type="text/javascript" src="common.js"></script>
</head>
<body>
<div class="header"><?include "header.htm"?></div>
<div class="contents">
<table width="90%" height="60%" border="0" cellspacing="0" cellpadding="0">
<tr><td valign="top" align="left"><?php echo $input ?></td></tr>
</table>
</div>
<div class="footer"><?include "footer.htm"?></div>
</body>
</html>

<?php
// make sure no code will run after that
exit;
}
Saludos.
__________________
La muerte es un camino que todos debemos recorrer...

Última edición por djreficul; 01/08/2006 a las 05:46
  #17 (permalink)  
Antiguo 01/08/2006, 10:33
 
Fecha de Ingreso: octubre-2004
Mensajes: 741
Antigüedad: 13 años, 1 mes
Puntos: 3
Aparece el error en pantalla

Bueno, puse en el php.ini Display_errors = ON y ahora aparece en pantalla los errores:

Parse error: parse error, unexpected $end in C:\Archivos de programa\Apache Group\Apache2\htdocs\rawk.com.ar\interfase.php on line 23

Alguien puede interpretar este aviso de error?
Con respecto al ";" que me dicen, no influye para que el archivo se vea.

Gracias nuevamente y sigo en la busqueda de la solución!!!
  #18 (permalink)  
Antiguo 01/08/2006, 11:02
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
¿El contenido del interfase.php es solo este?

Código PHP:
<?php
function CabeceraPagina()
{
?> <html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<FONT SIZE="+1">Esta cabecera estará en todas sus páginas.</FONT><BR>
<hr>
<?
}

function 
PiePagina()
{
?>
<hr>
<FONT SIZE="-1">Este es el pie de página.</FONT><BR>
</body>
</html>
<?
}
?>
El error lo q te está diciendo es q no se esperaba la variable $end en la línea 23 de tu código. Eso puede ser debido a que haya una llave sin cerrar, un punto y coma sin poner...

Revisa esa línea y la anterior por si hay algo q pueda estar dando el fallo y en caso de duda pon el código completo si es q no es sólo ese.

Ah, y otra cosa, acostúmbrate a usar <?php para entrar en php pues si usases servidores externos es posible q no tengan la directiva q permite usar las etiquetas cortas en el php.ini (lo digo por futuros traspasos a otros proveedores y tal).

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #19 (permalink)  
Antiguo 01/08/2006, 11:21
 
Fecha de Ingreso: octubre-2004
Mensajes: 741
Antigüedad: 13 años, 1 mes
Puntos: 3
Hay que usar <?php

Gracias djreficul
El problema estaba en que hay que usar <?php No acepta abreviaturas de sintaxis, aunque se que hay una opción para cambiar esa forma, no recuerdo bien si hay que cambiarlo en el php.ini ó en httpd.conf, casualmente lo estaba leyendo ayer pero no recuerdo donde lo lei!!!
Es que esto me ha estado mareando hace 4 días!!!
Bueno, ya está solucionado... gracias nuevamente a todos!!!
Un abrazo enorme.
Paul.-
  #20 (permalink)  
Antiguo 01/08/2006, 11:26
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
En el php.ini busca:

short_open_tag = On

y si lo dejas a On ya permite etiquetas cortas, pero aún así mi recomendación es usar la larga por si dependes de servidores ajenos en los que tú no controlas el php.ini y no se si a través de set_ini() podrías habilitarlo o no.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #21 (permalink)  
Antiguo 01/08/2006, 11:36
 
Fecha de Ingreso: octubre-2004
Mensajes: 741
Antigüedad: 13 años, 1 mes
Puntos: 3
Es como dices...!!!

Es mejor usar la etiqueta larga, uno se ahorra dolores de cabeza!!!
Gracias y haber si otros sacan provecho de esta experiencia y solución!!!
Saludos!!!
Paul.-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:06.