Foros del Web » Programando para Internet » PHP »

Problemas al procesar cadena $post - se corta

Estas en el tema de Problemas al procesar cadena $post - se corta en el foro de PHP en Foros del Web. Buenas tardes, Estoy tratando de programar un script a fin de que reciba varias variables por post y las mande por mail. Parece muy simple ...
  #1 (permalink)  
Antiguo 02/07/2013, 06:20
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Problemas al procesar cadena $post - se corta

Buenas tardes,


Estoy tratando de programar un script a fin de que reciba varias variables por post y las mande por mail.

Parece muy simple pero tengo problemas. Una variable que recibo, es muy larga, y esta cuando la proceso en php a la hora de mandarlo por email se corta. ¿Por qué?


Lo más curioso es que tengo un código que almacena todas las variables en un .log en el servidor, y en esto, la cadena grande aparece entera, ¿por qué?

Este es el código:

Código:
$error=$_REQUEST['c1'];
$destinatario="[email protected]";

mail($destinatario,$campo4,$error);


$scpath = '/web/texto/';

$f=fopen($scpath.'/errorlog.log',"a");
$a=$_REQUEST;

foreach ($a as $k=>$v)
	fputs($f,$k." = ".$v."\n\n");
	fclose($f);

Si en vez de $error=$_REQUEST['c1']; pongo $error=$_POST['c1']; sigue pasando lo mismo...


¿Qué me sucede? ¿Qué puedo hacer? Necesito vuestra ayuda!!, gracias ;;)
  #2 (permalink)  
Antiguo 02/07/2013, 06:59
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problemas al procesar cadena $post - se corta

eso es porque por defecto la función mail no soporta un texto con más de 70 caracteres por línea, por lo cual debe de cortarlo con el carácter de fin de linea, utilizando la función wordwrap por ejemplo
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 02/07/2013, 07:11
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas al procesar cadena $post - se corta

Buenas, no lo entiendo...

Lo que me pasa es que se corta el número de líneas, no la longitud de esta. siempre se me corta en la línea 55 creo recordar.

¿A qué es debido?


Además he probado enviarlo con phpmailer y pasa lo mismo.



Graciassss
  #4 (permalink)  
Antiguo 02/07/2013, 13:51
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Problemas al procesar cadena $post - se corta

maycolalvarez ha respondido justamente a esa pregunta, indicando que solo se puede poner una cierta cantidad de caracteres por línea, usa más de una línea para evitar el problema.

Esto no debería pasar con PHPMailer.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #5 (permalink)  
Antiguo 02/07/2013, 13:53
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas al procesar cadena $post - se corta

ya, es lo que no entiendo, pero me pasa. ¿Qué es lo que puedo hacer? ¿Dónde está el problema?

graciasss
  #6 (permalink)  
Antiguo 02/07/2013, 14:03
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Problemas al procesar cadena $post - se corta

granvia ya te respondieron que si tu texto es muy largo tenes que cortarlo cada 50 o menos caracteres por linea,

a mi jamas me pasó ni con mail ni con phpmailer
  #7 (permalink)  
Antiguo 02/07/2013, 14:14
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas al procesar cadena $post - se corta

ya es raro.. cómo me recomiendas cortar la cadena? Usando wordwrap?? cuánta es la longitud que se recomienda por línea? 50 ó 70 caracteres??


Y luego que es lo que me recomiendas revisar para ver como soluciono este problema...


había pensado en que el contenido de la cadena lo guardo en un .txt y luego lo adjunto por correo, pero no se hacerlo... :(


graciasss
  #8 (permalink)  
Antiguo 02/07/2013, 14:15
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Problemas al procesar cadena $post - se corta

empeza por leer el manual php.net

tu consulta es muy basica

saludos!
  #9 (permalink)  
Antiguo 02/07/2013, 14:31
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas al procesar cadena $post - se corta

okok eso pensaba hacer pero me gustaria saber si con esta idea de guardar todo el contenido de dicha cadena en un archivo .txt y mandarlo por email solventaría el problema o no, daría igual....

graciassss
  #10 (permalink)  
Antiguo 03/07/2013, 00:58
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas al procesar cadena $post - se corta

ya lo hice todo y me sigue pasando, ¿qué puede estar mal?
  #11 (permalink)  
Antiguo 03/07/2013, 02:52
Avatar de exatienda  
Fecha de Ingreso: julio-2013
Ubicación: Manresa, Barcelona
Mensajes: 227
Antigüedad: 10 años, 9 meses
Puntos: 21
Respuesta: Problemas al procesar cadena $post - se corta

Saludos granvia86,

A mi me ocurria algo parecido a tu problema hace tiempo y creo que lo logré solucionar almacenando el valor de las variables en una cookie temporal (puedes configurarla por ejemplo que tenga de vida unos 10 segundos ya que solo sirve para el pase de variables) y luego desde el .php donde envías el email leer la cookie.

Quizás sea una solución un poco ortodoxa pero es funcional.

Suerte! :)
__________________
cajas rack tpvs | impresoras
  #12 (permalink)  
Antiguo 03/07/2013, 02:55
Avatar de exatienda  
Fecha de Ingreso: julio-2013
Ubicación: Manresa, Barcelona
Mensajes: 227
Antigüedad: 10 años, 9 meses
Puntos: 21
Respuesta: Problemas al procesar cadena $post - se corta

Ahora se m ha ocurrido, annexo al mensaje anterior, para que no tengas problemas con las cookies, una vez hayas utilizado la cookie para recuperar las variables immediatamente después de la función mail(), "destruye" la cookie inicializandola de nuevo y así no tendrás problemas con la vida de la cookie para usarla de nuevo.
__________________
cajas rack tpvs | impresoras
  #13 (permalink)  
Antiguo 03/07/2013, 02:57
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Respuesta: Problemas al procesar cadena $post - se corta

el problema es que no me pasan esto por navegador, no puedo usar cookies :(
  #14 (permalink)  
Antiguo 03/07/2013, 08:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas al procesar cadena $post - se corta

Yo usaría una librería profesional para enviar correos, como PHPMailer o Swiftmail, hacerlo con la nativa email() no es bueno si no eres experto en el tema.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 03/07/2013, 08:38
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Problemas al procesar cadena $post - se corta

Cita:
Iniciado por pateketrueke Ver Mensaje
Yo usaría una librería profesional para enviar correos, como PHPMailer o Swiftmail, hacerlo con la nativa email() no es bueno si no eres experto en el tema.
Eso mismo, esas librerías están hechas para facilitar la vida y gestionan este tipo de cosas como el largo de caracteres automáticamente.

Yo te recomiendo PHPMailer y si este tampoco te resulta, entonces podemos ayudarte con eso, ya que en un codigo como

mail($destinatario,$campo4,$error);

No hay mucho que podamos hacer.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: cadena, corta, post, procesar, variables
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 11:59.