Foros del Web » Programando para Internet » PHP »

FECHAS .. porqué no funciona??

Estas en el tema de FECHAS .. porqué no funciona?? en el foro de PHP en Foros del Web. Hola amigos... tengo un problema en la configuracion de las fechas de un formulario, las fechas están llegando en inglés. En a sección de la ...
  #1 (permalink)  
Antiguo 15/10/2007, 15:29
 
Fecha de Ingreso: agosto-2007
Mensajes: 122
Antigüedad: 16 años, 7 meses
Puntos: 3
FECHAS .. porqué no funciona??

Hola amigos... tengo un problema en la configuracion de las fechas de un formulario, las fechas están llegando en inglés.

En a sección de la cabecera del formulario onde se configura el date del mismo, es decir la fecha de envío del mensaje, inicialmente he colocado la linea:

$cabecera = "Date: ".date('d').'-'.date('m').'-'.date('Y').$UN_SALTO;

Supuestamente con esta línea la fecha se vería como 15 - 10 - 2007 (ejemplo), pero por algun motivo, el servidor no lo está mostrando así. He intentado usar otras combinaciones de fechas , como ser:

("j, n, Y")
ó
("r")
ó
("dd-mm-yyyy")
ó
("yyyy-mm-dd")
ó
("F j, Y, g:i a")

Y por algún motivo tampoco ninguna de estas ha funcionado!!! ya que en muchos casos mostraban años como 2010, o siempre el mes de enero, en fin, errores siempre... Sé que es algo del servidor de esta página en particular, ya que he probado en otro servidor y funciona bien (está de más decir que una queja al servidor es inútil, tienen un 0800 que no atienden jamás).

Saco en conclusión entonces que algo en el servidor no acepta configuraciones de fechas en las cabeceras, asique he intentado borrando de cuajo esa linea del código (me refiero a $cabecera = "Date: ".date('d').'-'.date('m').'-'.date('Y').$UN_SALTO; )

Asi es que ahora, las fechas llegan correctamente (ejemplo: Monday 15, Oct 2007) pero claro, en inglés... Es por esto que, navegando por internet, sé que se soluciona escribiendo en el código, EN ALGÚN LUGAR QUE DESCONOZCO, las lineas de set_locale, que son las siguientes:

<?php
set_locale(LC_ALL,"es_ES@euro","es_ES","esp");
echo strftime("%A %d de %B del %Y");
?>

Y mi consulta es esa: siendo que los correos ahora llegan con la fecha correcta pero en inglés, y que esto se soluciona cambiando los "locales", y que las lineas que hay que escribir son las de arriba, me pregunto, DONDE DEBO COLOCAR ESAS LINEAS? al principio del formulario, bajo el head, en donde?? porque he probado y no está funcionando....

Lineas abajo envio el código completo de mi formulario, por si fuera necesario verlo:

Muchas gracias desde ya, saludos!

Lola


CODIGO DEL FORMULARIO:

else{
//Estoy recibiendo el formulario, compongo el cuerpo

$UN_SALTO="\r\n";
$DOS_SALTOS="\r\n\r\n";

$destinatario = "[email protected]";
$titulo = $HTTP_POST_VARS["asunto"];
$responder = $HTTP_POST_VARS["email"];
$remite = $HTTP_POST_VARS["email"];
$remitente = $HTTP_POST_VARS["nombre"];

$cabecera = "Date: ".date('d').'-'.date('m').'-'.date('Y').$UN_SALTO;
$cabecera .= "MIME-Version: 1.0".$UN_SALTO;
$cabecera .= "From: ".$remitente."<".$remite.">".$UN_SALTO;
$cabecera .= "Return-path: ". $remite.$UN_SALTO;
$cabecera .= "Reply-To: ".$remite.$UN_SALTO;
$cabecera .= "X-Mailer: PHP/". phpversion().$UN_SALTO;

$cuerpo = "Formulario enviado\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Telefono: " . $HTTP_POST_VARS["telefono"] . "\n";
$cuerpo .= "Ciudad: " . $HTTP_POST_VARS["ciudad"] . "\n";
$cuerpo .= "Provincia: " . $HTTP_POST_VARS["provincia"] . "\n";
$cuerpo .= "Pais: " . $HTTP_POST_VARS["pais"] . "\n";
$cuerpo .= "Asunto: " . $HTTP_POST_VARS["asunto"] . "\n";
$cuerpo .= "Mensaje: " . $HTTP_POST_VARS["mensaje"] . "\n";

//mando el correo...
mail($destinatario, $titulo, $cuerpo, $cabecera);

//doy las gracias por el envío
echo "El formulario se ha enviado correctamente, le responderemos a la brevedad. Muchas gracias.";
  #2 (permalink)  
Antiguo 16/10/2007, 00:06
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 9 meses
Puntos: 19
Re: FECHAS .. porqué no funciona??

no podes usar funciones entre puntos, generalmente jaja

hacelo de esta forma
$fecha = date("d-m-y");
$cabecera = "Date: $fecha"$UN_SALTO;

saludos espero que te sirva, si te sirvio avisame
  #3 (permalink)  
Antiguo 16/10/2007, 04:48
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Re: FECHAS .. porqué no funciona??

Estas queriendo modificar la fecha en la cabecera de un email. El formato de los emails tienen una especificacion para los datos. ¿El formato que tu quieres usar es un formato valido segun la especificacion? Va a ser que no, revisa todos los RFC relativos a emails, y veras que formatos son los validos.

Los servidores de correo esperan la cabecera date en un formato valido, y muchas veces lo que hacen es intentar traducir la cadena que recibe a un formato valido, por eso te salen fechas erroneas.
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 18:42.