Foros del Web » Programando para Internet » PHP »

Es bueno usar short_open_tag

Estas en el tema de Es bueno usar short_open_tag en el foro de PHP en Foros del Web. Buenas!, vereis mi duda es la siguiente. Estoy siguiendo un libro de PHP5 pero estoy teniendo problemas con un ejemplo que seguro que es de ...
  #1 (permalink)  
Antiguo 19/02/2006, 12:49
 
Fecha de Ingreso: febrero-2006
Mensajes: 13
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta Es bueno usar short_open_tag

Buenas!, vereis mi duda es la siguiente. Estoy siguiendo un libro de PHP5 pero estoy teniendo problemas con un ejemplo que seguro que es de lo más simple que hay
Código PHP:
<?php 
if ($_POST['user']){
print 
"Hello, ";
print 
$_POST['user'];
print 
"!";
}else{
print<<<_HTML_
<form method="POST" action="$_SERVER[PHP_SELF]">
your name: <input type="text" name="user">
<br/>
<input type="submit" value="Say Hello">
</form>
_HTML_;
}
?>
Pues bien cuando abró la página en internet explorer después del botón "Say Hello" aparece _HTML_;}?>. Después de revisarlo varias veces el código no estaba mal (almenos con lo que respecta a copiarlo del libro). Busco por internet una solucion y hay una que, aunque tampoco me funciona, es la siguiente
Código PHP:
<?php 
if ($_POST['user']){
print 
"Hello, ";
print 
$_POST['user'];
print 
"!";
}else{
?>

<form method="POST" action="<?php $_SERVER['PHP_SELF']?>">
your name: <input type="text" name="user">
<br/>
<input type="submit" value="Say Hello">
</form>

}
?>
`
pero en este caso aparte de que el servidor Apache me da error diciendo que la página "<?php $_SERVER['PHP_SELF']?>" no existe, tengo que habilitar en php.ini short_tag, lo cual he leido que no es muy recomendable, tanto por seguridad como portabilidad, aunque de todos modos me daría igual porque no consigo que el código se ejecute. Usó Apache 2.0 y php 5.0, apache lo uso como servidor virtual, todo en un Windows Xp Home Edition. Si alguien supiera cuál es el fallo agradecería que me ayudara.

Bueno sé que en vez de hacer este código, en vez de llamar a $_SERVER[PHP_SELF] podría realizar action="decirhola.php", siendo ese archivo el que escriba por pantalla lo que está en el principio del condicional, pero claro sería usar un archivo html que llamara a un php, entonces mi pregunta es ¿que metodología de programación es la más idonea?, intentar que el formulario se resuelva directamente en el mismo fichero que lo pide, o realizar la llamada a otro fichero php, usando html. Creo que todo lo que he escrito se resume en, ¿como insertar código html en php no creen?, voy a investigar por aquí haber que encuentro. Gracias de todos modos y espero sus respuestas!!!

Última edición por Amedio; 19/02/2006 a las 13:30
  #2 (permalink)  
Antiguo 19/02/2006, 21:20
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
en el primer código:
www.php.net/string

donde dice claramente: el delimitador de la cadena NO puede comenzar con número o "_".

En el segundo código:
<?php $_SERVER['PHP_SELF']?> debería ser
<?php echo $_SERVER['PHP_SELF']?> o
<?= $_SERVER['PHP_SELF'] ?>

Sobre la pregunta, siempre depende de lo que quieras hacer y de qué experiencia tengas programando cosas similares.


Saludos.
  #3 (permalink)  
Antiguo 19/02/2006, 22:07
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 15 años, 8 meses
Puntos: 0
Para el segundo caso sería así, se te olvido aparte de la aclaracion que hace alvlin, de abrir la etiqueta PHP que cierras despues de la llave (}):

Código PHP:
 <?php  
if ($_POST['user']){ 
print 
"Hello, "
print 
$_POST['user']; 
print 
"!"
}else{
?> 
 
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']?>"> 
your name: <input type="text" name="user"> 
<br/> 
<input type="submit" value="Say Hello"> 
</form> 

<?php ?>
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-
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 07:09.