Foros del Web » Programando para Internet » PHP »

Problemas con html dentro de un echo

Estas en el tema de Problemas con html dentro de un echo en el foro de PHP en Foros del Web. Quiero hacer desaparecer el cuadro de texto correspondiente a las validaciones de usuarios si el usuario esta validado y entonces he echo el siguiente codigo ...
  #1 (permalink)  
Antiguo 19/04/2006, 05:04
 
Fecha de Ingreso: marzo-2006
Mensajes: 230
Antigüedad: 11 años, 8 meses
Puntos: 2
Problemas con html dentro de un echo

Quiero hacer desaparecer el cuadro de texto correspondiente a las validaciones de usuarios si el usuario esta validado y entonces he echo el siguiente codigo es decir: he echo un if y dentro de ese if he envuelto todas las etiquetas html(correspondientes a la caja de texto) en echo de la forma descrita mas abajo...
Código PHP:
<?
                    $aut
=$_SESSION['autentificado'];
                    if(
$aut){
                     echo 
"<form action="Php/entrada.php" method="post" name="acceso" id="acceso">";
                      echo 
"<table width="95" border="0" cellpadding="0" cellspacing="0">";
                        echo 
"<tr>";
                          echo 
"<td valign="top">&nbsp;</td>";
                        echo
"</tr>";
                        echo
"<tr>";
                         echo
"<td valign="top"><table width="95" border="0" cellspacing="0" cellpadding="0">";
                            echo
"<tr>";
                              echo
"<td width="15" align="center" bgcolor="#FF6600"><span class="simbolo">&not;</span></td>";
                                  
echo"<td width="5" valign="bottom" bgcolor="#FFB98A"><table width="100%" border="0" cellspacing="0" cellpadding="0">";
                                    
echo"<tr>";
                                      echo
"<td valign="bottom" bgcolor="#A0B4AF"><img src="../img/pixel.gif" width="1" height="1" /></td>";
                                      
echo"</tr>";
                                    echo
"</table></td>";
                                  echo
"<td align="left" valign="bottom" class="datosnegrita"><table width="100%" border="0" cellspacing="0" cellpadding="0">";
                                    echo
"<tr>";
                                      echo
"<td bgcolor="#FFB98A" class="accesos">clientes</td>";
                                      
echo"</tr>";
[.....]
                        echo
"</table>";
                    echo
"</form>";
                    }
?>
  #2 (permalink)  
Antiguo 19/04/2006, 05:38
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 11 años, 7 meses
Puntos: 2
Bueno, no aclaras cual es tu ploblema, pero viendo el código podría decirte que tenés que escapar (poniendoles adelante una \) las comillas dobles que aparecen el el codigo html que tenés que mostrar, para que php no las interprete como el comienzo o fin de una cadena, sino como el caracter que representa. Un ejemplo:

Código PHP:
<?
echo "<table width=\"95\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
?>
Y asi con todo lo demás.
Saludos.
  #3 (permalink)  
Antiguo 19/04/2006, 07:02
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 12 años, 2 meses
Puntos: 56
Cierto, pero si quieres evitar el uso de echo en cada línea puedes usar algo como

echo <<< EOT
<form action="Php/entrada.php" method="post" name="acceso" id="acceso">
<table width="95" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top">&nbsp;</td>
</tr>
....
</form>
EOT;

__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #4 (permalink)  
Antiguo 19/04/2006, 09:39
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 13 años, 10 meses
Puntos: 5
Amigo en mi opinion para lo que estas haciendo si usas un solo echo para imprimir tu html seria como trabajar mas limpio...

Si el contenido de tu html, omite usos de comillas simples (') en su contenido entonces podrias habrir y cerrar tu echo de la siguiente manera :
Código PHP:
<?
echo'<form action="Php/entrada.php" method="post" name="acceso" id="acceso">
 <table width="95" border="0" cellpadding="0" cellspacing="0"> 
  <tr>
   <td valign="top">&nbsp;</td>
    [bla..bla.bla..]'
;
//Puedes intruducir las variables manera '.$campo.'
 
?>
Por otro lado la propuesta de jcxnet es muy valida, por lo menos ami me a resultado muy bien... podrias usar el metodo heredoc...

... en fin hay muchas maneras pero puedes intentar con cualquiera de estas dos opciones.

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com

Última edición por xyyy7; 19/04/2006 a las 09:48
  #5 (permalink)  
Antiguo 19/04/2006, 09:46
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Que tal una opcion sin usar echo(), que se dice más rápida:

Código PHP:
<?php
   
if($algo="algo")
   {
?>
<form action="Php/entrada.php" method="post" name="acceso" id="acceso">
<table width="95" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top">&nbsp;</td>
</tr>
....
</form>
<?php
   
}
?>
  #6 (permalink)  
Antiguo 19/04/2006, 09:53
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 11 años, 7 meses
Puntos: 2
Cita:
Iniciado por xyyy7
Si el contenido de tu html, omite usos de comillas simples (') en su contenido entonces podrias habrir y cerrar tu echo de la siguiente manera :
Código PHP:
<?
echo'<form action="Php/entrada.php" method="post" name="acceso" id="acceso">
 <table width="95" border="0" cellpadding="0" cellspacing="0"> 
  <tr>
   <td valign="top">&nbsp;</td>
    [bla..bla.bla..]'
;
//Puedes intruducir las variables manera $campo
 
?>
Si se incluyen variables dentro de una cadena encerrada entre comillas simples, no obtendremos el resultado esperado, ya que las variables no se expanden si se encuentran dentro de este tipo de cadenas. :

Código PHP:
<?
$variable 
"mundo";
echo 
'Hola $variable';  //Imprimirá: Hola $variable
echo "Hola $variable"//Imprimirá: Hola mundo
?>
Con la sintaxis heredoc también se expanden las variables.
Saludos.
  #7 (permalink)  
Antiguo 19/04/2006, 09:56
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 13 años, 10 meses
Puntos: 5
Cita:
Iniciado por Notwen
Si se incluyen variables dentro de una cadena encerrada entre comillas simples, no obtendremos el resultado esperado, ya que las variables no se expanden si se encuentran dentro de este tipo de cadenas. :

Código PHP:
<?
$variable 
"mundo";
echo 
'Hola $variable';  //Imprimirá: Hola $variable
echo "Hola $variable"//Imprimirá: Hola mundo
?>
Con la sintaxis heredoc también se expanden las variables.
Saludos.
...amigo te me adelantaste.. ya habia hecho la correcion....

... es muy cierto!
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #8 (permalink)  
Antiguo 19/04/2006, 10:21
 
Fecha de Ingreso: marzo-2006
Mensajes: 230
Antigüedad: 11 años, 8 meses
Puntos: 2
Ya esta hecho!!!!!!muy buena esa del echo <<< no me la sabia esa pero es mas util que la ostia y yo como tonto poniendo echos como tonto...eso si hasta que he descubierto que si no pones el EOT; sin tabulaciones ni espacios no funciona...

gracias
  #9 (permalink)  
Antiguo 19/04/2006, 10:30
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 13 años, 10 meses
Puntos: 5
Cita:
Iniciado por utopiko
...eso si hasta que he descubierto que si no pones el EOT; sin tabulaciones ni espacios no funciona...
Deberías de comprender el por que no te funciona...

Haz click aqui » heredoc (Hay que seguir las normas del php)

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #10 (permalink)  
Antiguo 19/04/2006, 14:23
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 16 años, 1 mes
Puntos: 2
Mas prolijo que usar heredoc me parece la opcion que comenta claudiovega, sobre todo si es para un echo, otra cosa seria tener que asignar una variable...

Saludos!
__________________
JmN
  #11 (permalink)  
Antiguo 19/04/2006, 15:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
De la forma que comenta clauidovega .. optimizamos un poco el proceso de PHP .. no se "evaluará" todo ese código que quede fuera de los <? ... ?> que indican que eso es código PHP a evaluar.

También presenta la ventaja de "ver" ese código en forma visual (su resultado) si usamos algún editor Gráfico de HTML tipo "Dreamweaver".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 10:01.