post #1 (permalink) Antiguo 28-oct-2009, 17:23
Unhappy Problema con salto de línea con php en textarea
Hola estimados, desde un formulario de contacto me llega cierta información dentro de un textarea:

<textarea name="yourmessage" style="display:none;">
<?
echo " Nombre completo: <br />" . stripslashes(htmlspecialchars($fullname)) . "\r" ;
echo " Dirección: " . stripslashes(htmlspecialchars($site)) . "\r" ;
echo " Ciudad: " . stripslashes(htmlspecialchars($city)) . "\r" ;
echo " Provincia: " . stripslashes(htmlspecialchars($country)) . "\r" ;
echo " Tel/Celular: " . stripslashes(htmlspecialchars($tel)) . "\r" ;
echo " Otros datos de interés: " . stripslashes(htmlspecialchars($profile)) . "\r";
?></textarea>

El problema es me la info me llega sin saltos de líneas, o sea todo un chorizo largo:

Dirección: psr 456Ciudad: San RamónProvincia: SJTel/Celular: 12345678Otros datos de interés: bla bla

Ya probé de todo pero no hay caso! (<br> \r\n etc.). Alguien me puede guiar como para que la info me llegue así?:

Dirección: psr 456
Ciudad: San Ramón
Provincia: SJ
Tel/Celular: 12345678
Otros datos de interés: bla bla

Muchas gracias!.
Usuario Registrado
Fecha de Ingreso: oct-09
Mensajes: 5
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
elsolodigno está desconectado
Responder Citando
post #2 (permalink) Antiguo 28-oct-2009, 19:12
Predeterminado
Como te dije en el post anterior, si ponés todo el código(en este caso el script que hace el envio de mail..) te doy una mano y te damos el código listo y te explicamos

En si, la bocha está en especificarle por cabeceras al envio de mail, que va con contenido html para que te tome los saltos de línea...
__________________

elrincondemariano.com.ar
ComunidadArgentina.net
Usuario Normal
Fecha de Ingreso: sep-04
Edad: 21
Mensajes: 1,434
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
crazyboy está desconectado
Responder Citando
post #3 (permalink) Antiguo 29-oct-2009, 12:40
Predeterminado
Hola!, te paso el form completo (no te asuste pero estoy dando mis primeros pasos!):

$yourname=clean($yourname);
$yourmessage=clean($yourmessage);
$youremail=clean($youremail);
$tamano1=clean($cantidad);
//Headers

$headers="From: ".$yourname." <".$youremail.">\n";
$headers.="Reply-To: ".$yourname." <".$youremail.">\n";
$headers.="MIME-Version: 1.0\n";
$headers.="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
$headers.="X-Sender: ".$_SERVER['REMOTE_ADDR']."\n";
$headers.="X-Mailer: PHP/".phpversion()."\n";
$headers.="X-Priority: ".$priority."\n";
$headers.="Return-Path: <".$youremail.">\n";
$headers.="This is a multi-part message in MIME format.\n";
//Message

$message = "--".$boundary."\n";
$message.="Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message.="Content-Transfer-Encoding: quoted-printable\n";
$message.="\n";
$message.="$yourmessage";
$message.="$cantidad";
$message.="\n";

<form method="post" action="<?=$_SERVER['PHP_SELF'];?>" enctype="multipart/form-data" name="phmailer" onsubmit="return Checkit(this);">
<table align="center" class="table">
<tr>
<td colspan="2" class="table_header" width="100%"><?=$websitename;?></td>
</tr>
<?If($allowattach > 0) {?>


<?
$igual = $username;
$sql2 = mysql_query("SELECT * FROM maaking_users where username = '$igual'");
while($row = mysql_fetch_array($sql2)){

$username = $row['username'];
$email = $row['email'];
$fullname = $row['fullname'];
$site = $row['site'];
$city = $row['city'];
$country = $row['country'];
$tel = $row['tel'];
$profile = $row['profile'];
}
?>
<input name="yourname" type="hidden" size="30" value="<?=stripslashes(htmlspecialchars($username) );?>" />

<input name="youremail" type="hidden" size="30" value="<?=stripslashes(htmlspecialchars($email));? >" />

<?If($use_subject_drop AND is_array($subjects)) {?>
<select name="emailsubject" size="1">
<?while(list($key,$val)=each($subjects)) {?>
<option value="<?=intval($key);?>"><?=htmlspecialchars(str ipslashes($val));?></option>

<?}?>
</select>


<?} Else {?>
<?$emailsubject = 'Mensaje';?>
<input name="emailsubject" type="hidden" size="30" value="<?=stripslashes(htmlspecialchars($emailsubj ect));?>" />

<?}?>
</td>
</tr>

<tr>
<td width="30%" class="table_body">Adjuntar archivo:</td>
<td width="70%" class="table_body"><input name="attachment[]" type="file" size="30" /></td>
<td>
<select name="cantidad" size="1">
<option value="" selected></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</td>

</tr>


<textarea name="yourmessage" style="display:none;">
<?php
echo "Nombre completo: " . stripslashes(htmlspecialchars($fullname)) . "\r\n";
echo ", Dirección: " . stripslashes(htmlspecialchars($site)) . "\r\n";
echo ", Ciudad: " . stripslashes(htmlspecialchars($city)) . "\r\n";
echo ", Provincia: " . stripslashes(htmlspecialchars($country)) . "\r\n";
echo ", Tel/Celular: " . stripslashes(htmlspecialchars($tel)) . "\r\n";
echo ", Otros datos de interés: " . stripslashes(htmlspecialchars($profile)) . "&nbsp;-&nbsp;\r\n";
?>
</textarea>

<tr>
<td colspan="2" width="100%" class="table_footer">
<input type="hidden" name="submit" value="true" />
<input type="submit" value="<?=$submitvalue;?>" /> &nbsp;
<input type="reset" value="<?=$resetvalue;?>" />
</td>
</tr>
</table>
</form>

Son dos script que modifiqué... Gracias y saludos!.
Usuario Registrado
Fecha de Ingreso: oct-09
Mensajes: 5
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
elsolodigno está desconectado
Responder Citando
post #4 (permalink) Antiguo 11-nov-2009, 09:13
Predeterminado
Los vuelvo a molestar!, sigo sin hacer funcionar para que me llegue con salto de línea. Alguna idea?. Gracias!.
Usuario Registrado
Fecha de Ingreso: oct-09
Mensajes: 5
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
elsolodigno está desconectado
Responder Citando
post #5 (permalink) Antiguo 11-nov-2009, 20:35
Predeterminado
Si lees esto, solucionarías aprendiendo: Enviar emails HTML con PHP | aNieto2K

Ahora bien, si te pones a ver, tenes MUCHO código basura... En si, podrias simplificar mucho las cosas, y hacerlas más prolijas...

Pero en sí, el "error" que estas cometiendo es estar pasando el texto como texto plano..

Lo que podrias hacer, sería decirle que lo vas a pasar como código html e insertar simples saltos de linea de html (<br />)
__________________

elrincondemariano.com.ar
ComunidadArgentina.net
Usuario Normal
Fecha de Ingreso: sep-04
Edad: 21
Mensajes: 1,434
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
crazyboy está desconectado
Responder Citando
post #6 (permalink) Antiguo 13-nov-2009, 01:03
Predeterminado
también probrá cambiando
Código:
$yourmessage=clean($yourmessage);
por
Código:
$yourmessage=nl2br(clean($yourmessage));
OFF TOPIC: cómo cayó la actividad de este foro desde que lo cambiaron, me parece q la pifiaron feo, ya no dan ganas de entrar......
__________________
pinicio.com.ar
Usuario Normal
Fecha de Ingreso: nov-03
Edad: 29
Mensajes: 271
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
r_bradbury está desconectado
Responder Citando
Respuesta

Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Ir al Foro


La franja horaria es GMT -3. Ahora son las 06:35.