Foros del Web » Programando para Internet » PHP »

Dar formato al texto

Estas en el tema de Dar formato al texto en el foro de PHP en Foros del Web. Buenas de nuevo Tengo un formulario de contactar, pues bien... me gustaría saber si es posible que cuando el usuario escribe un comentario en mi ...
  #1 (permalink)  
Antiguo 17/03/2008, 10:32
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Dar formato al texto

Buenas de nuevo

Tengo un formulario de contactar, pues bien... me gustaría saber si es posible que cuando el usuario escribe un comentario en mi formulario, este me llegará "formateado" al mail.

Ya que por defecto me coge el texto del campo "comentarios" y por muchos saltos de lineas le hayas puesto cuando escribias el comentario, llega todo como una cadena de texto.

Hay alguna forma de no perder el formato? o detectar cuando el usuario hace un salto de linea :s

Gracias de antemano!
  #2 (permalink)  
Antiguo 17/03/2008, 11:11
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Dar formato al texto

prueba con este codigo, me manda los mails formateados.


Código PHP:



          
// Datos del email

$nombre_origen    "Cevit";
$email_origen     "[email protected]";
$email_copia      "[email protected]";
$email_ocultos    "[email protected]";
//$email_destino    = "".$row['email']."";  
$email_destino    "[email protected]";  //cambiar esta linea por la de encima cuando termine la aplicacion


$asunto           "".$row['usuario']." Recuperar datos de registro en Cevit.";

$mensaje          '<table width="629" border="0" cellspacing="1" cellpadding="2">
  <tr>
    <td width="623" align="left"></td>
  </tr>
  <tr>
    <td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong>   '
.$row['usuario'].'  su clave a sido recuperada</strong></div></td>
  </tr>
  <tr>
    <td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> '
.$row['usuario'].'</strong>, usted ordeno recuperar su clave..<br>
          <strong>Su Clave es : </strong>'
.$row['password'].'<br>
    </div>
    </td>
  </tr>
</table>'
;



$formato          "html";

//*****************************************************************//
$headers  "From: $nombre_origen <$email_origen> \r\n";
$headers .= "Return-Path: <$email_origen> \r\n";
$headers .= "Reply-To: $email_origen \r\n";


$headers .= "X-Sender: $email_origen \r\n";

$headers .= "X-Priority: 3 \r\n";
$headers .= "MIME-Version: 1.0 \r\n";
$headers .= "Content-Transfer-Encoding: 7bit \r\n";

//*****************************************************************//
 
if($formato == "html")
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }
   else
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }

if (@
mail($email_destino$asunto$mensaje$headers)) 
    { echo 
"Le hemos enviado un correo electronico con sus datos de registro. ";  } 
     else 
    {  echo 
"Error, No se ha establecido la conexión con el servidor, por favor intentelo de nuevo pasados unos minutos. "; }

    }    
    
     }
     
     
        
        
?> 
fijate donde pone la variable $mensaje, ahi es donde formatea el texto
  #3 (permalink)  
Antiguo 17/03/2008, 11:57
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Re: Dar formato al texto

Cita:
Iniciado por jaronu Ver Mensaje
prueba con este codigo, me manda los mails formateados.


Código PHP:



          
// Datos del email

$nombre_origen    "Cevit";
$email_origen     "[email protected]";
$email_copia      "[email protected]";
$email_ocultos    "[email protected]";
//$email_destino    = "".$row['email']."";  
$email_destino    "[email protected]";  //cambiar esta linea por la de encima cuando termine la aplicacion


$asunto           "".$row['usuario']." Recuperar datos de registro en Cevit.";

$mensaje          '<table width="629" border="0" cellspacing="1" cellpadding="2">
  <tr>
    <td width="623" align="left"></td>
  </tr>
  <tr>
    <td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong>   '
.$row['usuario'].'  su clave a sido recuperada</strong></div></td>
  </tr>
  <tr>
    <td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> '
.$row['usuario'].'</strong>, usted ordeno recuperar su clave..<br>
          <strong>Su Clave es : </strong>'
.$row['password'].'<br>
    </div>
    </td>
  </tr>
</table>'
;



$formato          "html";

//*****************************************************************//
$headers  "From: $nombre_origen <$email_origen> \r\n";
$headers .= "Return-Path: <$email_origen> \r\n";
$headers .= "Reply-To: $email_origen \r\n";


$headers .= "X-Sender: $email_origen \r\n";

$headers .= "X-Priority: 3 \r\n";
$headers .= "MIME-Version: 1.0 \r\n";
$headers .= "Content-Transfer-Encoding: 7bit \r\n";

//*****************************************************************//
 
if($formato == "html")
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }
   else
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }

if (@
mail($email_destino$asunto$mensaje$headers)) 
    { echo 
"Le hemos enviado un correo electronico con sus datos de registro. ";  } 
     else 
    {  echo 
"Error, No se ha establecido la conexión con el servidor, por favor intentelo de nuevo pasados unos minutos. "; }

    }    
    
     }
     
     
        
        
?> 
fijate donde pone la variable $mensaje, ahi es donde formatea el texto
No me refiero eso, tu ejemplo sirve cuando quieres enviarle al usuario un mensaje donde ya sabes que texto te ha entrado y lo formateas cogiendo las variables.

En el ejemplo que pongo yo es el texto que te entran en "comentarios"
Todo ese texto te llega a ti en una variable y te lo guarda como un chorro de información.

Lo que busco es que si el usuario puso 3 frases dentro de la casilla "comentario" yo enviarle las 3 frases del comentario. Y no una sola con toda la cadena.

Gracias
  #4 (permalink)  
Antiguo 17/03/2008, 13:51
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Re: Dar formato al texto

Cita:
Iniciado por neodani Ver Mensaje
No me refiero eso, tu ejemplo sirve cuando quieres enviarle al usuario un mensaje donde ya sabes que texto te ha entrado y lo formateas cogiendo las variables.

En el ejemplo que pongo yo es el texto que te entran en "comentarios"
Todo ese texto te llega a ti en una variable y te lo guarda como un chorro de información.

Lo que busco es que si el usuario puso 3 frases dentro de la casilla "comentario" yo enviarle las 3 frases del comentario. Y no una sola con toda la cadena.

Gracias
Alguna sugerencia?

Gracias!
  #5 (permalink)  
Antiguo 17/03/2008, 13:55
 
Fecha de Ingreso: enero-2008
Mensajes: 115
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Dar formato al texto

no se entiende bien tu pregunta... creo q podría ser más fácil si nos pones un ejemplo de lo q buscas
  #6 (permalink)  
Antiguo 17/03/2008, 13:58
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Dar formato al texto

Ya se que no sirve para eso en concreto, pero TU puedes decirle al script de donde viene el contenido, osea el texto

Cita:
$mensaje = '<table width="629" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="623" align="left"></td>
</tr>
<tr>
<td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong> '.$row['usuario'].' su clave a sido recuperada</strong></div></td>
</tr>
<tr>
<td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> '.$row['usuario'].'</strong>, usted ordeno recuperar su clave..<br>
<strong>Su Clave es : </strong>'.$row['password'].'<br>
</div>
</td>
</tr>
</table>';

donde pone '.$row['password'].' pues tu pones $_POST['comentario'], que viene del form
porque ese ejemplo que te he dado, es de un email que me llega por un formulario para recuperar la contraseña, adaptalo un poco, el funcionamiento de lo que tu quieres hacer es ese

Un saludo
  #7 (permalink)  
Antiguo 17/03/2008, 16:12
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Re: Dar formato al texto

Cita:
Iniciado por turbex Ver Mensaje
no se entiende bien tu pregunta... creo q podría ser más fácil si nos pones un ejemplo de lo q buscas
Situación, formulario de contacto, hay un campo que es "comentario" donde introduces toda una parrafada separada por parrafos, saltos de lineas etc...

Por ej.

"Me gusta mucho tu pagina.

Encuentro el contenido muy útil.

Gracias por compartir tus dudas.

Un saludo
Pepe"


Si procesas el formulario todo ese texto lo recibes en una variable

$comentario = POST['comentario'];

El problema es que se guarda todo junto, sin saltos de lineas!

Contenido de $comentario
Me gusta mucho tu pagina.Encuentro el contenido muy útil.Gracias por compartir tus dudas.Un saludoPepe

Si yo envio ese texto,/ por mucho que ponga bonito el correo, jaronu) si lo envio me imprime el contenido de la variable de esa forma.

Lo que busco es alguna forma de guardar los saltos de lineas que haya hecho el usuario.

Se entiende?

Gracias de nuevo
  #8 (permalink)  
Antiguo 31/05/2008, 19:21
Avatar de eoes  
Fecha de Ingreso: diciembre-2003
Ubicación: Puerto Ordaz
Mensajes: 78
Antigüedad: 20 años, 4 meses
Puntos: 0
Respuesta: Dar formato al texto

Hola, puedes usar un editor de texto con JS, algo como esto:


http://www.naninet.com.ar/wp-content..._tinymce_3.jpg

Tambien puedes verlo en Foros del Web cuando posteas.

En google encontraras algunos:

http://www.google.co.ve/search?q=edi...ient=firefox-a

Saludos.
__________________
Fran Ros.
  #9 (permalink)  
Antiguo 01/06/2008, 03:35
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Dar formato al texto

creo que la solucion mas simple es usar la funcion nl2br()

Código PHP:
$variable=nl2br($variable); 
La respuesta está en las FAQ de este foro y con una mejor descripcion.

Accede en el siguiente enlace:

http://www.forosdelweb.com/f18/faqs-...00/#post245770


Espero haber sido de ayuda.


Saludos
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 12:18.